📅  最后修改于: 2023-12-03 15:07:52.298000             🧑  作者: Mango
在 C++ STL(标准模板库)中,堆叠(stack)是一种容器适配器(container adapter),它提供了一种后进先出(LIFO,Last-In-First-Out)的数据结构。堆叠使得插入和删除元素都在堆叠的顶部进行。
在创建堆叠之前,需要包含相应的头文件:
#include <stack>
然后,可以使用其默认构造函数创建一个空的堆叠:
std::stack<int> s;
这个堆叠包含 int 类型的元素。
可以使用 push() 方法将元素添加到堆叠的顶部。例如,将 1、2 和 3 添加到堆叠中:
s.push(1);
s.push(2);
s.push(3);
这时,堆叠中的元素为 3, 2, 1,其顺序是后进先出。
可以使用 pop() 方法从堆叠的顶部删除元素。例如,删除堆叠中的 3 和 2:
s.pop();
s.pop();
现在,堆叠中仅有一个元素 1。
可以使用 top() 方法获取堆叠的顶部元素,而不弹出它。例如:
int top = s.top(); // top = 1
可以使用 empty() 方法检查堆叠是否为空。例如:
if (s.empty()) {
std::cout << "堆叠为空" << std::endl;
} else {
std::cout << "堆叠非空" << std::endl;
}
在 C++ STL 中,堆叠提供了一种方便的 LIFO 数据结构,对于需要维护后进先出顺序的情况非常有用。通过调用 push() 和 pop() 方法,可以向堆叠中添加和删除元素。使用 top() 方法可以获取堆叠的顶部元素,而 empty() 方法可以用于检查堆叠是否为空。