ベクトルから要素を消去したいのですが、ランタイムアサーションエラーが表示されます。実行時のアサーションエラーをベクトル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())の代わりにwhileループを使用することをお勧めします。ベクトルの最初の要素を取得し、それを消去します。 – sarat