fork(1) download
  1. #include <stdexcept>
  2. #include <iostream>
  3. #include <deque>
  4.  
  5. class TrainComposition
  6. {
  7. //std::vector<int> wagons;
  8.  
  9. public:
  10.  
  11. std::deque<int> wagons;
  12.  
  13. void attachWagonFromLeft(int wagonId)
  14. {
  15. wagons.push_front(wagonId);
  16. }
  17.  
  18. void attachWagonFromRight(int wagonId)
  19. {
  20. wagons.push_back(wagonId);
  21. }
  22.  
  23. int detachWagonFromLeft()
  24. {
  25. std::deque<int>::iterator it = wagons.begin();
  26. std::cout << "bigin is:" << *it << '\n';
  27. wagons.pop_front();
  28. return *it;
  29. }
  30.  
  31. int detachWagonFromRight()
  32. {
  33. std::deque<int>::iterator it = wagons.end();
  34. std::cout<< "end is:" << *it<<'\n';
  35. wagons.pop_back();
  36. return 0;
  37. }
  38. };
  39.  
  40. #ifndef RunTests
  41. int main()
  42. {
  43. TrainComposition tree;
  44. tree.attachWagonFromLeft(7);
  45. tree.attachWagonFromLeft(13);
  46. std::cout << tree.detachWagonFromRight() << "\n"; // 7
  47. std::cout << tree.detachWagonFromLeft() << "\n"; // 13
  48. return 0;
  49. }
  50. #endif
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
end is:0
0
bigin is:13
13