Syntax:
#include <algorithm> void sort_heap (random_access_iterator start, random_access_iterator end); void sort_heap (random_access_iterator start, random_access_iterator end, StrictWeakOrdering cmp);
The sort_heap() function turns the heap defined by [start,end) into a sorted range.
If the strict weak ordering comparison function object cmp is given, then it is used instead of the < operator to compare elements.
Example
// range heap example #include <iostream> #include <algorithm> #include <vector> using namespace std; int main () { int myints[] = {10,20,30,5,15}; vector<int> v(myints,myints+5); vector<int>::iterator it; make_heap (v.begin(),v.end()); cout << "initial max heap : " << v.front() << endl; pop_heap (v.begin(),v.end()); v.pop_back(); cout << "max heap after pop : " << v.front() << endl; v.push_back(99); push_heap (v.begin(),v.end()); cout << "max heap after push: " << v.front() << endl; sort_heap (v.begin(),v.end()); cout << "final sorted range :"; for (unsigned i=0; i<v.size(); i++) cout << " " << v[i]; cout << endl; return 0; }
Output: initial max heap : 30
max heap after pop : 20
max heap after push: 99
final sorted range : 5 10 15 20 99