c++中栈的头文件及相关函数
时间: 2024-09-22 13:04:48 浏览: 62
在C++中,栈是一种数据结构,通常用于临时存储小块的数据,它是一种后进先出(LIFO,Last In First Out)的数据结构。对于栈的操作,C++标准库中的`<stack>`头文件提供了一组容器适配器,允许你在`std::stack`容器中进行相应的操作。
`<stack>`头文件中的关键函数和类型包括:
1. `#include <stack>`:引入栈相关的命名空间和类型。
2. `std::stack`: 容器适配器模板,其元素类型需要支持默认构造函数和析构函数。实例化时,你可以指定容器的底层存储类型,如`std::vector`, `std::deque`等。
3. `push(element)`: 向栈顶添加一个新元素。
4. `pop()`: 删除并返回栈顶元素(如果没有元素,则抛出异常)。
5. `top()`: 返回但不删除栈顶元素的引用,如果栈为空则会报错。
6. `empty()`: 检查栈是否为空,如果为空则返回`true`,否则返回`false`。
7. `size()`: 获取栈中元素的数量。
8. `clear()`: 清空栈中的所有元素。
9. `make_unique<T>(args...)`: 如果需要动态分配内存,并希望自动管理生命周期,可以使用`std::make_unique`创建`unique_ptr`指向的新栈元素。
例如:
```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";
// 删除栈顶元素并输出
myStack.pop();
std::cout << "After pop: Top element is: " << myStack.top() << "\n";
return 0;
}
```
阅读全文