Re[2]: STL и итераторы
От: Сыроежка  
Дата: 10.01.12 18:48
Оценка:
Здравствуйте, Сыроежка, Вы писали:

С>Здравствуйте, yaser, Вы писали:


Y>>есть что-то типа такого

Y>>typedef std::list<class_impl*> MainList;
Y>>typedef std::list<MainList::iterator> SubMainCList;

Y>>MainList c;

Y>>SubMainCList cs;


Y>>где-то в коде

Y>>cnl::MainList::iterator i = c.insert(channel->consumers.begin(), impl);
Y>>cs.push_back(i);


Y>>еще где-то в коде

Y>>for(SubMainCList::iterator it = cs.begin(); it != cs.end(); it++){
Y>> if (*(*it) == this) {
Y>> с.erase(*it);
Y>> cs.erase(it);
Y>> }

Y>>Корректно ли хранить итератор? Правильно ли в такой последовательности удалять?



Обратите внимание также на то, что в вашем примере кода, итераторы в списке располагаются в обратном порядке по сравнению с элементами исходного списка. Так как сами элементы с помощью insert добавляются в начало списка, а итераторы с помощью push_back добавляются в конец списка.
Меня можно встретить на www.cpp.forum24.ru
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.