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