ranges::make_heap

ranges::make_heap (힙 구성 — ranges)

범위를 최대 힙으로 재배열하는 ranges 버전 알고리즘이에요. <algorithm> 헤더에 있어요.

출처: cppreference

본문

std::ranges::make_heap은 범위를 최대 힙으로 재배열해요.

namespace std::ranges {
template< class R, class Comp = ranges::less, class Proj = std::identity >
requires std::sortable<ranges::iterator_t<R>, Comp, Proj>
constexpr ranges::borrowed_iterator_t<R> make_heap( R&& r, Comp comp = {}, Proj proj = {} );
}
  • comp(기본 less)로 비교해요.
  • 복잡도: 최악의 경우 3·N번의 비교(선형).
std::vector<int> v{3, 1, 4, 1, 5, 9, 2, 6};
std::ranges::make_heap(v);   // 최대 힙, 최대값 9가 맨 앞

힙을 만든 뒤 ranges::push_heap/pop_heap으로 우선순위 큐처럼 다루는 ranges 버전이에요.

더 알아보기 (Learn more)

cppreference