http://kukuta.tistory.com/81




for( map<string,vector<int> >::iterator iter = MyMap.begin(); iter != MyMap.end(); ) {

if( iter->second.size() < 1 ) {

MyMap.erase(iter++);

}

else{

iter++;

}

}


위처럼 erase(iter++);하지 않으면, iter을 미리 다른곳에 보관한다음, 삭제후 복원해야 한다.




혹은

for( map<string,vector<int> >::iterator iter = MyMap.begin(); iter != MyMap.end(); ) {

if( iter->second.size() < 1 ) {

iter = MyMap.erase(iter);

}

else{

iter++;

}

}


Posted by Нуеоп