1.4 KiB
1.4 KiB
[alg.heap.operations.general]
26 Algorithms library [algorithms]
26.8 Sorting and related operations [alg.sorting]
26.8.8 Heap operations [alg.heap.operations]
26.8.8.1 General [alg.heap.operations.general]
A random access range [a, b) is aheap with respect to comp and proj for a comparator and projection comp and proj if its elements are organized such that:
-
With N = b - a, for all i, 0<i<N, bool(invoke(comp, invoke(proj, a[âiâ12â]), invoke(proj, a[i]))) is false.
-
*a may be removed by pop_heap, or a new element added by push_heap, in O(logN) time.
These properties make heaps useful as priority queues.
make_heap converts a range into a heap andsort_heap turns a heap into a sorted sequence.