Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- typedef unsigned int uint;
- class stack
- {
- public:
- const uint CAP = 5;
- int* data;
- uint size;
- uint cap;
- stack() : data(new int[CAP]), size(0), cap(CAP)
- {}
- ~stack()
- {
- delete[] data;
- }
- void push(int n)
- {
- if (size == cap)
- {
- int* temp = new int[cap += CAP];
- memcpy(temp, data, size * sizeof(int));
- delete[] data;
- data = temp;
- }
- data[size++] = n;
- }
- template<class...Ts>
- void push(int head, Ts... tail)
- {
- push(head);
- push(tail...);
- }
- void pop()
- {
- if(size > 0)
- data[size-- - 1] = 0;
- }
- bool isEmpty()
- {
- return size == 0;
- }
- void print()
- {
- for (int i = 0; i < size; i++)std::cout << data[i] << " ";
- }
- };
- int main()
- {
- stack s;
- s.push(1, 2, 3, 4, 5, 6);
- //for(int i = 0; i < 60; i+=3) s.push(i, i+1, i+2);
- s.print();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement