template< class T, class Compare >
T max( std::initializer_list<T> ilist, Compare comp );
- std::initializer_list 관련해서는 다른 문서를 읽어보면 좋아요.
template< class ForwardIt, class Compare >
ForwardIt max_element( ForwardIt first, ForwardIt last, Compare comp );
- ForwardIt는 한쪽 방향으로만 전진하는 Iterator를 뜻합니다.
template< class RandomIt, class Compare >
void sort( RandomIt first, RandomIt last, Compare comp );
- RandomIt는 순서에 상관없이 원소에 임의 접근이 가능한 Iterator를 뜻합니다.
위에 보시다 싶이 모두 Compare 함수를 갖고 있습니다.
bool compare(const Type1 &a, const Type2 &b);
- std에서는 compare 함수를 위와 같은 signature로 만들길 추천하고 있습니다.
- Type 1과 Type2는 ForwardIt, RandomIt 등이 deference (역참조) 됬을 때 나오는 자료형으로 맞추길 권하고 있습니다.
- compare 함수의 반환값을 통해서 인자로 들어온 a, b 값 중 어느 값이 더 크고 어느 값이 결국엔 max 인지 파악하게 됩니다.
- compare 함수는 a가 b보다 작은 경우 true를 반환하도록 만들어져야 합니다. (이는 std::min, std::min_element 경우에도 마찬가지 입니다.
- sort의 경우는 좀 다릅니다. 오름차순인 경우 (a가 b보다 작아서, a가 b 앞에 오는 경우) 이처럼 하면 되고. 내림차순인 경우 a가 b보다 큰 경우 true를 반환하도록 하면 됩니다.
'개발 관련 기타 > C++' 카테고리의 다른 글
[프로그래머스] (C++) 점프와 순간이동 (0) | 2019.12.02 |
---|---|
[프로그래머스] (C++) 최댓값과 최솟값 (0) | 2019.11.28 |
[프로그래머스] (C++) 단체사진 찍기 예제 테스트 방법 (0) | 2019.11.28 |
[C++] 클래스 멤버 함수 (class member function) 를 static (정적) 으로 선언 하는 이유 (0) | 2019.11.20 |
[C++] system() 함수 사용 결과 / 쉘 명령 (command) 결과 (stdout) 를 문자열 (string) 로 받기 (0) | 2019.11.15 |