STL에서 가장 짜증나는 부분이 erase부분이 아닌가 싶다. erase와 remove의 차이점을 알아야 하고 거기에 몇 개 종류별 iterator의 erase 기법을 알아야 한다. 흠... 암기하기도 그렇고...꽤나 귀찮은 것들 하나다. 그래서 찾아본 것을 정리하면 아래와 같습당...
map's iterator erase 방법
// 1. 특정 조건에 따라 제거
map<..., ...> mp;
for(map<..., ...>::iterator i=mp.begin(); i != mp.end(); )
{
if( {조건문} ) {
mp.erase( i++ );
} else {
++i;
}
}
// 2. 전체 제거
map<..., ...> mp;
for(map<..., ...>::iterator i=mp.begin(); i != mp.end(); )
{
mp.erase( i++ );
}
vector's iterator erase 방법
// 1. 특정 조건에 따라 제거
vector<...> vec;
for(vector<...>::iterator i=vec.begin(); i != vec.end(); )
{
if( {조건문} ) {
i = vec.erase( i );
} else {
++i;
}
}
// 2. 전체 제거
vector<..., ...> vec;
for(vector<..., ...>::iterator i=vec.begin(); i != vec.end(); )
{
i = vec.erase( i );
}
http://linkmemo.tistory.com/category/?page=6
'library > STL' 카테고리의 다른 글
STL관련 step into무시하기 (0) | 2011.04.21 |
---|---|
map insert 반환값 (0) | 2010.09.12 |
copy (0) | 2010.02.09 |