C++ - idiom - Erase-Remove

원문

아래는 STL의 컨테이너에서 특정 요소를 삭제하는 코드.

std::vector<int> a;

/*a에 요소를 추가하는 코드는 생략*/

std::remove(a.begin(), a.end(), 100);

이것으로 사라진 것이 아니다. 실은 remove 함수는 특정 요소를 컨테이너의 뒤에 만든 후 선두의 특정 요소에 대한 반복문을 반환하기만 한다.
정말로 지우려면 이 Erase-Remove를 사용하자.

erase-remove.cpp
std::vector<int> a;

/*a에 요소를 추가하는 코드는 생략*/

a.erase(std::remove(a.begin(), a.end(), 100), v.end());

이 글은 2020-06-04에 작성되었습니다.