Standard C++ Library Class Reference
 // Copy both vectors to cout
 ostream_iterator<int> out(cout," ");
 copy(v1.begin(),v1.end(),out);
 cout << endl;
 copy(v2.begin(),v2.end(),out);
 cout << endl;
 // Now let's pop
 pop_heap(v1.begin(),v1.end());
 pop_heap(v2.begin(),v2.end(),less<int>());
 // v1 = (3,x,y,4) and v2 = (3,x,y,4)
 // Copy both vectors to cout
 copy(v1.begin(),v1.end(),out);
 cout << endl;
 copy(v2.begin(),v2.end(),out);
 cout << endl;
 // And push
 push_heap(v1.begin(),v1.end());
 push_heap(v2.begin(),v2.end(),less<int>());
 // v1 = (4,x,y,z) and v2 = (4,x,y,z)
 // Copy both vectors to cout
 copy(v1.begin(),v1.end(),out);
 cout << endl;
 copy(v2.begin(),v2.end(),out);
 cout << endl;
 // Now sort those heaps
 sort_heap(v1.begin(),v1.end());
 sort_heap(v2.begin(),v2.end(),less<int>());
 // v1 = v2 = (1,2,3,4)
 // Copy both vectors to cout
 copy(v1.begin(),v1.end(),out);
 cout << endl;
 copy(v2.begin(),v2.end(),out);
 cout << endl;
 return 0;
 }
Output :
4 2 3 1
4 3 2 1
3 2 1 4
3 1 2 4
4 3 1 2
4 3 2 1










