fork(7) download
  1. #include <iostream>
  2. #include <queue>
  3. #include <stack>
  4.  
  5. void
  6. reversed_queue_to_stack (
  7. std::queue<int>& src,
  8. std::stack<int>& dst
  9. ) {
  10.  
  11. for (; src.empty () == false; src.pop ())
  12. dst.push (src.front ());
  13.  
  14. for (; dst.empty () == false; dst.pop ())
  15. src.push (dst.top ());
  16.  
  17. for (; src.empty () == false; src.pop ())
  18. dst.push (src.front ());
  19. }
  20.  
  21. int
  22. main (int argc, char *argv[])
  23. {
  24. std::queue<int> q;
  25. std::stack<int> s;
  26.  
  27. // fill our queue with data
  28.  
  29. for (int i = 0; i < 10; ++i)
  30. q.push (i);
  31.  
  32. reversed_queue_to_stack (q, s);
  33.  
  34. for (; s.empty () == false; s.pop ())
  35. std::cerr << s.top () << " ";
  36.  
  37. // output: "0 1 2 3 4 5 6 7 8 9 "
  38. }
Success #stdin #stdout 0.02s 2856KB
stdin
Standard input is empty
stdout
Standard output is empty