Previous fileTop of DocumentContentsIndex pageNext file
Apache C++ Standard Library Reference Guide


Library:  Algorithms


Local Index

No Entries


Algorithm that creates a heap


#include <algorithm>

namespace std {
  template <class RandomAccessIterator>
  make_heap(RandomAccessIterator start,
            RandomAccessIterator finish);

  template <class RandomAccessIterator, class Compare>
  make_heap(RandomAccessIterator start,
            RandomAccessIterator finish, Compare comp);


A heap is a particular organization of elements in a range between two random access iterators [a, b). Its two key properties are:

These properties make heaps useful as priority queues.

The heap algorithms use operator<() as the default comparison. In all of the algorithms, an alternate binary predicate function object can be specified.

The first version of the make_heap() algorithm arranges the elements in the range [start, finish) into a heap using operator<() to perform comparisons. The second version uses the comparison function object comp. Since the only requirements for a heap are the two listed above, make_heap() is not required to do anything within the range (start, finish - 1).


This algorithm makes at most 3 * (finish - start) comparisons.


See Also

pop_heap(), push_heap(), sort_heap()

Standards Conformance

ISO/IEC 14882:1998 -- International Standard for Information Systems -- Programming Language C++,

Previous fileTop of DocumentContentsIndex pageNext file