반응형
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 ); }
반응형
'C++ 프로그래밍' 카테고리의 다른 글
C++ Technical Report 1 : Metaprogramming and Type Traits (0) | 2009.07.29 |
---|---|
C++ Technical Report 1 : Function pobjects (0) | 2009.07.28 |
C++ Technical Report 1 : Containers (0) | 2009.07.27 |
C++ Technical Report 1 : General Utilities (0) | 2009.07.24 |
C++ Technical Report 1 (TR1) : Overview (0) | 2009.07.23 |
Visual Studio 2010에 적용 예정인 C++0x (0) | 2009.07.21 |
C++ 헤더파일에 선언할 수 있는 4가지 타입의 전역변수 (0) | 2009.04.21 |
C++ 흔한 실수 (0) | 2009.03.23 |