Advertisement
Guest User

Untitled

a guest
Oct 21st, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.83 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. typedef unsigned int uint;
  4. class stack
  5. {
  6. public:
  7. const uint CAP = 5;
  8. int* data;
  9. uint size;
  10. uint cap;
  11.  
  12. stack() : data(new int[CAP]), size(0), cap(CAP)
  13. {}
  14. ~stack()
  15. {
  16. delete[] data;
  17. }
  18.  
  19. void push(int n)
  20. {
  21. if (size == cap)
  22. {
  23. int* temp = new int[cap += CAP];
  24. memcpy(temp, data, size * sizeof(int));
  25. delete[] data;
  26. data = temp;
  27. }
  28. data[size++] = n;
  29. }
  30.  
  31. template<class...Ts>
  32. void push(int head, Ts... tail)
  33. {
  34. push(head);
  35. push(tail...);
  36. }
  37. void pop()
  38. {
  39. if(size > 0)
  40. data[size-- - 1] = 0;
  41. }
  42. bool isEmpty()
  43. {
  44. return size == 0;
  45. }
  46. void print()
  47. {
  48. for (int i = 0; i < size; i++)std::cout << data[i] << " ";
  49. }
  50. };
  51.  
  52. int main()
  53. {
  54. stack s;
  55. s.push(1, 2, 3, 4, 5, 6);
  56. //for(int i = 0; i < 60; i+=3) s.push(i, i+1, i+2);
  57.  
  58. s.print();
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement