fork download
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <vector>
  4.  
  5. int main() {
  6. std::vector<int> heap = {1,3,5,7,9};
  7. auto print = [&]() {
  8. for (auto const & i : heap)
  9. std::cout << i << ' ';
  10. std::cout << '\n';
  11. };
  12.  
  13. std::cout << "\nBefore make_heap\n";
  14. print();
  15.  
  16. std::make_heap(heap.begin(), heap.end());
  17.  
  18. std::cout << "\nAfter make_heap\n";
  19. print();
  20.  
  21. // add an element
  22. heap.push_back(4);
  23. std::push_heap(heap.begin(), heap.end());
  24.  
  25. std::cout << "\nAfter adding an element (4)\n";
  26. print();
  27.  
  28. // remove an element
  29. std::pop_heap(heap.begin(), heap.end());
  30. heap.pop_back();
  31.  
  32. std::cout << "\nAfter removing an element\n";
  33. print();
  34. }
Success #stdin #stdout 0s 3432KB
stdin
Standard input is empty
stdout
Before make_heap
1 3 5 7 9 

After make_heap
9 7 5 1 3 

After adding an element (4)
9 7 5 1 3 4 

After removing an element
7 4 5 1 3