I
반복자 요구 조건
`sort`는 임의 접근 반복자, `find`는 입력 반복자만 있어도 됩니다.
알고리즘 이름만 보고 고르지 말고, 반복자 능력과 부작용을 먼저 맞추면 템플릿 오류와 논리 버그를 줄일 수 있습니다.
`sort`는 임의 접근 반복자, `find`는 입력 반복자만 있어도 됩니다.
`remove`는 크기를 줄이지 않으므로 `erase`와 함께 확인합니다.
비교, 대입, 이동 가능성은 사용자 정의 타입에서 특히 중요합니다.
`find`, `count`, `for_each`처럼 한 번 읽는 작업
`remove`, `replace`처럼 결과 위치를 유지하는 작업
`sort`, `binary_search`처럼 위치 계산이 필요한 작업