Привет, у меня проблемы с std::vector. Прошу помочь.
Вектор содержит элементы just.
std::vector<just> v;
std::vector<just>::iterator it;
В цикле происходит проверка условия A, если оно истинно, в вектор добавляется элемент.
if(A) v.push_back(obj); //obj - объект класса just.
Далее в цикле перебираются все элементы в векторе, проверяются условия B и C, если одно, либо другое истинно, элемент из вектора удаляется. Условия B и С - это поля, которые содержит каждый объект класса just.
it=v.begin();
while(it!=v.end())
{
if(it->B) {it=v.erase(it); continue;}
...
if(it->С) {it=v.erase(it); continue;}
it++;
}
Проблемы возникают при удалении объектов из контейнера. Причём, если в контейнере одновременно находится только один элемент, то все нормально при его удалении. Если же одновременно находятся два и более - то при удалении возникает критическая ошибка. (программа выполнила недопустимую операцию и будет закрыта).
Что я не так делаю?