c++ stack容器都有哪些内容,请给出使用示例
时间: 2024-10-27 21:11:48 浏览: 7
C++stack介绍及详细使用示例(源代码)
C++标准库中的`std::stack`是模板容器,它实现了栈这种数据结构,支持常量时间复杂度的插入和删除操作(在栈顶)。`std::stack`的主要内容包括:
1. **数据元素的存储**:`std::stack`使用动态数组或链表实现,取决于所使用的STL实现(如GCC、Clang或Microsoft Visual C++)。
2. **基本操作**:
- `push()`:将元素推入栈顶。
- `pop()`:移除并返回栈顶元素。
- `top()`:查看栈顶元素但不删除,返回指向顶部元素的迭代器。
- `empty()`:检查栈是否为空,如果为空则返回`true`,否则返回`false`。
- `size()`:返回当前元素的数量。
3. **安全性**:`push()`和`pop()`操作总是能在常数时间内完成,而`top()`在空栈上调用会抛出异常。
使用示例:
```cpp
#include <iostream>
#include <stack>
int main() {
std::stack<int> myStack;
// 插入元素
myStack.push(1);
myStack.push(2);
myStack.push(3);
// 查看栈顶元素
std::cout << "Top element is: " << myStack.top() << '\n'; // 输出3
// 弹出栈顶元素
myStack.pop();
std::cout << "After popping: " << myStack.top() << '\n'; // 输出2
// 检查栈是否为空
if (myStack.empty()) {
std::cout << "The stack is now empty.\n";
} else {
std::cout << "Stack has " << myStack.size() << " elements.\n"; // 输出2
}
return 0;
}
```
在这个例子中,我们首先创建了一个整数型的栈`myStack`,然后依次插入3个元素。通过`top()`获取栈顶元素,`pop()`弹出栈顶元素,并检查栈是否为空以及大小。
阅读全文