ranges::is_heap_until
ranges::is_heap_until (힙 성질 깨지는 지점)
범위의 시작부터 힙 성질을 유지하는 가장 긴 접두 구간의 끝을 찾는 ranges 버전 알고리즘이에요. <algorithm> 헤더에 있어요.
출처: cppreference
본문
std::ranges::is_heap_until은 힙 성질을 만족하는 가장 긴 접두 구간 [first, it)의 끝 it를 반환해요.
namespace std::ranges {
template< class R, class Proj = std::identity,
std::indirect_strict_weak_order<std::projected<ranges::iterator_t<R>, Proj>>
Comp = ranges::less >
constexpr ranges::borrowed_iterator_t<R>
is_heap_until( R&& r, Comp comp = {}, Proj proj = {} );
}
- 반환 값: 힙 성질이 깨지는 첫 요소(또는 범위 전체가 힙이면 끝).
- 복잡도: 선형.
std::vector<int> v{5, 4, 3, 1, 2, 9};
auto it = std::ranges::is_heap_until(v);
// 9를 가리킴 (처음 5개는 힙)
"어디까지 힙인지"를 알려줘요. 힙 상태 손상 진단에 유용한 ranges 버전이에요.