![]() |
Home | Libraries | People | FAQ | More |
template<class RandomAccessRange> RandomAccessRange& push_heap(RandomAccessRange& rng); template<class RandomAccessRange> const RandomAccessRange& push_heap(const RandomAccessRange& rng); template<class RandomAccessRange, class Compare> RandomAccessRange& push_heap(RandomAccessRange& rng, Compare pred); template<class RandomAccessRange, class Compare> const RandomAccessRange& push_heap(const RandomAccessRange& rng, Compare pred);
push_heap adds an element
to a heap. It is assumed that begin(rng), prior(end(rng)) is already a heap and that the element
to be added is *prior(end(rng)).
The ordering relationship is determined by using operator< in the non-predicate versions, and
by evaluating pred in
the predicate versions.
Defined in the header file boost/range/algorithm/heap_algorithm.hpp
For the non-predicate versions:
RandomAccessRange
is a model of the Random
Access Range Concept.
RandomAccessRange
is mutable.
RandomAccessRange's
value type is a model of the LessThanComparableConcept.
RandomAccessRange's
value type is a strict weak ordering,
as defined in the LessThanComparableConcept
requirements.
For the predicate versions:
RandomAccessRange
is a model of the Random
Access Range Concept.
RandomAccessRange
is mutable.
Compare is a model
of the StrictWeakOrderingConcept.
RandomAccessRange's
value type is convertible to both of Compare's
argument types.
!empty(rng)
[begin(rng), prior(end(rng))) is a heap.
Logarithmic. At most log(distance(rng)) comparisons.