Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Актуален ли list<T>::iterator после удаления эл-та 
V
    Опции темы
afiskon
Дата 5.6.2011, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 294
Регистрация: 31.3.2011
Где: Россия, Москва

Репутация: нет
Всего: 4



Я вот знаю, что в случае с vector после изменения контейнера итераторы могут потерять актуальность и нужно получать их снова (в связи с реализацией контейнера). А как обстоят дела с list<T> и forward_list<T>? Насколько я могу судить, итератор перестанет быть актуальным только если мы удалим элемент, на который этот итератор сейчас указывает. Дает ли STL какие-то гарантии на этот счет? Или, может, есть какое-то общее правило, дескать изменил (любой) контейнер - будь добр получить новый итератор?
PM MAIL WWW   Вверх
boostcoder
Дата 5.6.2011, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 20
Всего: 110



актуален.

Добавлено через 2 минуты и 1 секунду
Цитата(afiskon @  5.6.2011,  12:04 Найти цитируемый пост)
Дает ли STL какие-то гарантии на этот счет? Или, может, есть какое-то общее правило, дескать изменил (любой) контейнер - будь добр получить новый итератор?

мне такие правила не известны.
я делаю вывод о актуальности итератора на основании реализации контейнера.
PM WWW   Вверх
borisbn
Дата 5.6.2011, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



Цитата(afiskon @  5.6.2011,  12:04 Найти цитируемый пост)
Дает ли STL какие-то гарантии на этот счет? Или, может, есть какое-то общее правило, дескать изменил (любой) контейнер - будь добр получить новый итератор?


Из документации по list с cplusplus.com
Цитата

Compared to the other base sequence containers (vector and deque), lists are the most efficient container erasing at some position other than the beginning or the end of the sequence, and, unlike in these, all of the previously obtained iterators and references remain valid after the erasing operation and refer to the same elements they were referring before (except, naturally, for those referring to erased elements).



--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1483 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.