구간 지정
v.begin(), v.end()는 전체 컨테이너가 아니라 시작과 끝 다음 위치를 넘긴다.
[first,last)sort, find_if, remove_if 같은 알고리즘은 컨테이너가 아니라 iterator 구간을 받으며, iterator category와 predicate 부작용이 성능과 안정성을 결정한다.
v.begin(), v.end()는 전체 컨테이너가 아니라 시작과 끝 다음 위치를 넘긴다.
[first,last)sort는 random access iterator가 필요해 list에는 list.sort를 써야 한다.
iterator categoryfind_if/remove_if는 각 원소에 predicate를 호출해 선택 여부를 판단한다.
pure predicate 권장remove_if는 실제 삭제가 아니라 뒤로 밀고 새 끝 iterator를 반환한다.
erase-remove idiom