Đây là định nghĩa của toán tử →
1 2 3 4 5 6 |
int& Stack::operator[] (int index) throw(std::range_error) { if(index > 0 || index <= -SP) { throw std::range_error("out of stack"); } return stackstore[SP + index - 1]; } |
Chú ý cách tìm phần tử đích và cách tính toán vị trí của nó trong ngăn xếp.
Hàm main được update như sau →
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include "mystack_06.h" #include <iostream> using namespace std; int main(void) { int i = 2, j; Stack stk; stk << 1 << 2 * i; cout << stk[0] << endl << stk[-1] << endl; stk[0] = stk[-1] = 0; stk >> i >> j; cout << i << endl << j << endl; return 0; } |
Chương trình chạy ra kết quả như sau:
1 2 3 4 |
4 1 0 0 |