// 【场景】栈操作 // 编写一个程序,演示栈(stack)的以下操作: 1)将一个元素压入栈顶。 2)从栈顶弹出一个元素。 3)获取栈顶元素的值。 #include #include using namespace std; template void print(stack &s) { cout << "当前栈中元素(按出栈顺序)打印如下: " << endl; // 先将栈转存到另一个临时栈中,临时栈的元素顺序和原栈相反 // 临时栈用于打印,而不改变原栈的元素顺序 stack tmp = s; // 拷贝原来的栈,避免改变原栈 while (!tmp.empty()) { cout << tmp.top() << " "; tmp.pop(); } cout << endl; cout << "------------------" << endl; } int main() { stack stk; stk.push(1); stk.push(2); stk.push(3); stk.push(4); stk.push(5); print(stk); cout << "从栈顶弹出一个元素: " << stk.top() << endl; stk.pop(); print(stk); cout << "获取栈顶元素的值: " << endl; cout << stk.top() << endl; return 0; }