erase

library/STL 2010. 12. 14. 19:22

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
블로그 이미지

란마12

,