fork(2) download
  1. #include <iostream>
  2. #include <memory>
  3. #include <queue>
  4.  
  5. int main ()
  6. {
  7. auto const less = [](std::unique_ptr<int> const& x, std::unique_ptr<int> const& y)
  8. {
  9. return x && y && (*x < *y);
  10. };
  11. using container = std::vector<std::unique_ptr<int>>;
  12. std::priority_queue<std::unique_ptr<int>, container, decltype(less)> queue(less);
  13.  
  14. queue.push(std::make_unique<int>(24));
  15. queue.push(std::make_unique<int>(42));
  16. queue.push(std::make_unique<int>(11));
  17.  
  18. while (!queue.empty())
  19. {
  20. std::unique_ptr<int>& top = const_cast<std::unique_ptr<int>&>(queue.top());
  21. std::unique_ptr<int> myInt = std::move(top);
  22. queue.pop();
  23. std::cout << *myInt << '\n';
  24. }
  25. }
Success #stdin #stdout 0s 4552KB
stdin
Standard input is empty
stdout
42
24
11