더북(TheBook)

make_heap() 함수에는 힙의 순서를 정하는 비교 함수를 세 번째 매개변수로 지정할 수 있는 버전도 있다. 보다-큰(greater-than) 연산자를 정의한 함수만 지정하면 최소 힙도 생성할 수 있다. 최소 힙은 functional 헤더에 있는 조건자를 사용해도 된다.

std::vector<double> numbers {2.5, 10.0, 3.5, 6.5, 8.0, 12.0, 1.5, 6.0};
std::make_heap(std::begin(numbers), std::end(numbers),
                      std::greater<>()); // 결과: 1.5 6 2.5 6.5 8 12 3.5 10

greater에도 템플릿 타입 인수를 지정할 수 있다. 여기서는 빈 <>를 사용했으므로 타입 인수와 반환 타입을 추론하게 된다. make_heap() 함수를 사용해 컨테이너에 힙을 생성했다면, 여기에 쓸 수 있는 다양한 연산에 대해서는 다음 절에서 살펴보자.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.