Если я использую итератор в цикле 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