Стирание при повторении std::listC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Стирание при повторении std::list

Сообщение Anonymous »

Если я использую итератор в цикле for и использую стирание на текущей итерации итератора, цикл for должен продолжить работу и получить доступ к остальным элементам списка?
Из того, что я прочитал, так и должно быть, и это основная отличительная характеристика списка от deque или вектора. Для моих целей очередь может подойти, но мне нужно такое поведение.
Вот цикл, который я рассматриваю:
std::list::iterator iterator;
iterator = m_concurrents.begin();
for (; iterator != m_concurrents.end(); ++iterator) {
if (iterator->passes()) {
m_concurrents.erase(iterator);
}
}


Подробнее здесь: https://stackoverflow.com/questions/162 ... an-stdlist
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»