Я хочу стереть элемент из вектора в C++, но он показывает ошибку утверждения среды выполнения.Показывает ошибку утверждения во время выполнения в векторе C++
Мой код:
int i=0;
for(socketIterator=vectClientSocket.begin();socketIterator!=vectClientSocket.end();){
SOCKET clientSocket=*socketIterator;
isTrue=getBufferData(strt,stp,rm,clientSocket);
if(!isTrue){
vectClientSocket.erase(vectClientSocket.begin()+i);
vector<RMLObserver*>::iterator it;
for(it=vectRMLObserver.begin();it<vectRMLObserver.end();it++)
{
RMLObserver *observer = (RMLObserver*)*it;
observer->infosetSent(info->getRMLThinTranskportToken());
}
}
else
++socketIterator;
i++;
}
Когда один элемент удаляется он показывает ошибку во время выполнения,
Пожалуйста, помогите мне ... спасибо заранее.
См. Http://stackoverflow.com/questions/4645705/vector-erase-iterator/4645758#4645758 –
Я предлагаю вам использовать цикл while вместо цикла while (! Vec.end()) '. Получить первый элемент вектора и стереть его! – sarat