Advertisement
Guest User

Untitled

a guest
Mar 28th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.76 KB | None | 0 0
  1. #include<iostream>
  2. #include<string>
  3. #include<vector>
  4. #include<memory>
  5.  
  6. struct data;
  7.  
  8. typedef std::shared_ptr<data> dt;
  9.  
  10. class stack {
  11. public:
  12. void push_front(dt dejta)
  13. {
  14. last = dejta;
  15. if (stosik[0] == 0) stosik.clear(); // nie wiem czy jest sens inicjalizacji wektora przez jedno 0 a potem
  16. stosik.push_back(dejta); stackSize++; // usuwanie jego zawartosci i wprowadzenie nowego elementu. Moze lepiej
  17. } // zrobic przy funkcji pop, ze jak element jest zerowy(ten zainicjalizowany)
  18. //to informuje "stack is empty"
  19. void pop()
  20. {
  21. if (stosik.size() > 1)
  22. {
  23. stosik.pop_back();
  24. last = stosik.back();
  25. stackSize--;
  26. }
  27. else if(stosik.size() == 1)
  28. {
  29. stosik.pop_back();
  30. last = nullptr;
  31. stackSize--;
  32. }
  33. else
  34. {
  35. std::cout << "The stack is empty !" << std::endl;
  36. }
  37. }
  38. int size()
  39. {
  40. return stackSize;
  41. }
  42. dt getLast()
  43. {
  44. return last;
  45. }
  46. private:
  47. dt last, dataa;
  48. int stackSize = 0;
  49. std::vector<dt> stosik = { 0 };
  50. };
  51.  
  52. struct data {
  53. std::string name, surename;
  54. bool isAlcoholic;
  55. data(std::string name, std::string surename, bool isAlcoholic)
  56. {
  57. this->name = name;
  58. this->surename = surename;
  59. this->isAlcoholic = isAlcoholic;
  60. }
  61. };
  62.  
  63.  
  64.  
  65. int main()
  66. {
  67. dt d1 = std::make_shared<data>("Dominik", "Rusak", true);
  68. dt d2 = std::make_shared<data>("Leszek", "Szajnowski", true);
  69. dt d3 = std::make_shared<data>("Patryk", "Sztyglic", false);
  70. stack staczek;
  71. staczek.push_front(d1);
  72. staczek.size();
  73. staczek.push_front(d2);
  74. staczek.size();
  75. staczek.push_front(d3);
  76. staczek.size();
  77. staczek.pop();
  78. staczek.size();
  79. staczek.pop();
  80. staczek.size();
  81. staczek.pop();
  82. staczek.size();
  83. staczek.pop();
  84. staczek.size();
  85. int bla;
  86. std::cin >> bla;
  87.  
  88. return 0;
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement