Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <utility>
- using namespace std;
- const int MAX = 10;
- class Stack
- {
- protected:
- int st[MAX];
- int size = 0;
- public:
- Stack() : size(0) {}
- void push(int var)
- {
- if (size == MAX)
- throw runtime_error("Stack overflow");
- st[size] = var;
- size++;
- }
- int pop()
- {
- if (!size)
- throw runtime_error("Stack is empty");
- --size;
- return st[size + 1];
- }
- };
- class PairStack : public Stack
- {
- private:
- int st2[MAX];
- public:
- PairStack() { size = 0; }
- void push(pair<int, int> var)
- {
- if (size == MAX)
- throw runtime_error("Stack overflow");
- st[size] = var.first;
- st2[size] = var.second;
- size++;
- }
- pair<int, int> pop()
- {
- if (!size)
- throw runtime_error("Stack is empty");
- --size;
- return pair<int, int>(st[size+1], st2[size+1]);
- }
- };
- int main()
- {
- pair<int, int> para(5, 10);
- PairStack pairStack;
- for (int i = 0; i != MAX; ++i)
- pairStack.push(para);
- try {
- pairStack.push(para);
- }
- catch (runtime_error & e)
- {
- cout << e.what() << endl;
- }
- for (int i = 0; i != MAX; ++i)
- {
- para = pairStack.pop();
- cout << para.first << " - " << para.second << endl;
- }
- PairStack pairStack2;
- try {
- pairStack2.pop();
- }
- catch (runtime_error & e)
- {
- cout << e.what() << endl;
- }
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement