[begin, end)가 맞는가?
end()는 마지막 다음 위치이므로, 실제 처리 대상이 어디까지인지 먼저 고정합니다.
범위, 반복자 카테고리, 컨테이너 크기 변화, 비교 가능성을 함께 확인하면 STL 알고리즘의 의도를 더 안전하게 읽을 수 있습니다.
[begin, end)가 맞는가?end()는 마지막 다음 위치이므로, 실제 처리 대상이 어디까지인지 먼저 고정합니다.
sort는 임의 접근 반복자가 필요하고, list는 멤버 sort를 사용합니다.
remove는 요소를 앞으로 모을 뿐이므로 실제 삭제는 erase가 마무리합니다.
사용자 정의 타입은 ==, <, 비교 함수, 람다 중 필요한 약속을 준비합니다.
find, count_if, for_each
컨테이너를 바꾸지 않고 조건 확인, 검색, 집계를 수행합니다.
copy, transform, accumulate
출력 범위 크기와 초기값이 결과 의미를 결정합니다.
sort, remove, erase
순서와 크기가 달라질 수 있으므로 반복자 무효화까지 함께 봅니다.