벡터에 값을 넣는 것은 쉬운 반면, 벡터 안에 있는 요소를 제거하는 것은 약간 까다롭다.
먼저 벡터가 제공하는 제거 관련 멤버함수는 다음의 3가지 이다.
pop_back() 가장 나중의 요소를 지울 때
clear() 모든 요소를 지울 때
이 함수를 가지고 멍청하게 생각을 해보면 Brute-force하게 루프를 돌면서 원하는 요소를 얻는 단순한 방법을 할 텐데, 이렇게 하지 말고 잘 생각을 해보자.
STL에서 제공하는 알고리즘을 이용하면, 의외로 쉽게 해결된다.
remove_if() 알고리즘을 생각해보자.
알고리즘을 쓸려면
remove_if 는 3개의 인자를 갖는다.
iterator _Last 작업할 범위의 마지막 요소
predicate _Pred 검사할 문장을 서술해 놓은 함수
서술문(Predicates)
Predicates는 Yes/No를 반환하는 함수 포인터 혹은 함수 그 자체를 말한다.