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 (! vec.end())'루프 대신 while 루프를 사용하는 것이 좋습니다. 벡터의 첫 번째 요소를 가져와 지 웁니다. – sarat