在 C++ 中,std::stack 是一个容器适配器,它是在另一个 STL 容器的基础上提供了一组栈(后进先出)操作。下面是使用 std::stack 的几个常见用法。
创建一个空的 stack:
std::stack<int> myStack;
这将创建一个空的 std::stack 对象 myStack,其中 int 是堆栈中元素的数据类型。
向 stack 中添加元素:
你可以使用 push() 函数将元素推入栈中,如下所示:
myStack.push(1);
这将向 myStack 中添加一个值为 1 的元素。可以多次使用 push() 来添加更多的元素到栈中。
弹出栈顶元素:
使用 std::stack 的 pop() 函数将从栈顶弹出一个元素,如下所示:
myStack.pop();
这将从栈顶弹出一个元素。
访问栈顶元素:
使用 top() 函数返回位于栈顶的元素,如下所示:
int topElement = myStack.top();
如果栈是空的,则 top() 函数将导致未定义行为。
判断栈是否为空:
std::stack 的 empty() 函数返回一个布尔值,表示栈是否为空,如下所示:
bool isEmpty = myStack.empty();
获取栈的大小:
std::stack 的 size() 函数将返回栈中元素的个数,如下所示:
int stackSize = myStack.size();
复制栈:
您可以使用等号运算符 = 复制一个栈,复制得到的栈将包含与原始栈相同的元素,如下所示:
std::stack<int> myStackCopy = myStack;
这将创建一个新的 std::stack 对象 myStackCopy,其中包含与 myStack 相同的元素。
以上便是 std::stack 的几个常见用法。注意,std::stack 使用默认分配器来管理内存,也可以通过传递一个自定义分配器模板参数来指定自定义分配器。