STL Container 자료구조에서 특정 값 제거를 위한 코드 

컨테이너가 표준 시퀀스 컨테이너이면, container::erase + std::remove 를 사용합니다.
(단, list 컨테이너는 list container::remove를 사용합니다.)

컨테이너가 표준 연관 컨테이너이면, container::erase 를 사용합니다.

#include < vector >
#include < algorithm >

// std::vector 삭제 코드
typedef std::vector< int > VEC_Container;
VEC_Container vecContainer;

vecContainer.push_back( 1 );
vecContainer.push_back( 2 );
vecContainer.push_back( 1 );
vecContainer.push_back( 4 );
vecContainer.push_back( 1 );

const int eraseValue = 1;
vecContainer.erase( std::remove( vecContainer.begin(), vecContainer.end(), eraseValue ), vecContainer.end() );
#include < list >

// std::list 삭제 코드
typedef std::list< int > LIST_Container;
LIST_Container listContainer;

listContainer.push_back( 1 );
listContainer.push_back( 2 );
listContainer.push_back( 1 );
listContainer.push_back( 4 );
listContainer.push_back( 1 );

const int eraseValue = 1;
listContainer.remove( eraseValue );
#include < set >

// std::multiset 삭제 코드
typedef std::multiset< int > MULTISET_Container;
MULTISET_Container multisetContainer;

multisetContainer.push_back( 1 );
multisetContainer.push_back( 2 );
multisetContainer.push_back( 1 );
multisetContainer.push_back( 4 );
multisetContainer.push_back( 1 );

const int eraseValue = 1;
multisetContainer.erase( eraseValue );
2010/09/09 20:13 2010/09/09 20:13

글 걸기 주소 : 이 글에는 트랙백을 보낼 수 없습니다

덧글을 달아 주세요