在 C++ 中使用 std::stack 实现栈的简单示例程序:
// 引入头文件
#include <iostream>
#include <stack>
// main 函数
int main()
{
// 创建一个 std::stack 对象 s
std::stack<int> s;
// 将元素 1, 2, 3 依次入栈
s.push(1);
s.push(2);
s.push(3);
// 打印栈顶元素
std::cout << "Top element: " << s.top() << std::endl;
// 从栈中弹出一个元素
s.pop();
// 再次打印栈顶元素
std::cout << "Top element after pop: " << s.top() << std::endl;
return 0;
}
下面是对程序各部分的具体解释:
-
std::stack<int> s
创建了一个叫做 s 的栈对象,其中“<int>”表示这是一个整数类型的栈。 -
s.push(1)
、s.push(2)
和s.push(3)
表示分别将元素 1、2、3 压入栈顶,即 3 在栈顶,1 在栈底。 -
s.top()
表示返回栈顶元素,即 3。 -
s.pop()
表示将元素 3 弹出栈顶,此时栈顶变为元素 2。
在 C++ 中,常用的栈函数如下:
-
push(val):将 val 压入栈中。
-
pop():将栈顶元素弹出,如果栈为空则没有操作。
-
top():返回栈顶元素的引用,如果栈为空则未定义。
-
size():返回当前栈中元素的数量。
-
empty():测试栈是否为空,如果栈为空返回 true,否则返回 false。