// stack 没有迭代器:不支持遍历 // 原因: 栈是一种特殊的容器,只能在栈顶进行插入和删除操作 // stack 常用接口 // 1. push(elem); // 入栈 // 2. pop(); // 出栈 // 3. top(); // 返回栈顶元素 // 4. empty(); // 判断栈是否为空 // 5. size(); // 返回栈中元素的个数 // 6. swap(stk1, stk2); // 交换两个栈 #include #include using namespace std; int main() { stack stk; for (int i = 0; i < 1000; i++) { stk.push(i); } cout << "当前栈中元素个数:" << stk.size() << endl; cout << "栈顶的元素: " << stk.top() << endl; // 只弹出 600 这个元素 // 需要一个临时变量来保存弹出的元素 stack tmp_stk; while (stk.top() != 600) { tmp_stk.push(stk.top()); stk.pop(); } cout << " ----------\n弹出 600 前的栈顶元素: " << stk.top() << endl; stk.pop(); cout << "弹出 600 后的栈顶元素: " << stk.top() << endl << " ----------\n"; while (!tmp_stk.empty()) { stk.push(tmp_stk.top()); tmp_stk.pop(); } cout << "当前栈中元素个数:" << stk.size() << endl; cout << "栈顶的元素: " << stk.top() << endl; return 0; }