1.stack的定义和结构
stack是一种后进先出(LIF0)的数据结构,使用前需要包含头文件,stack提供了一组函数来操作和访问元素,但它的功能相对较简单。stack的定义和结构如下(仅作了解即可):
template<class T, class (ontainer = deque<T>>
class stack;
T:表示存储在stack中的元素的类型。
Container:表示底层容器的类型,默认为deque。也可以使用其他容器类型,如vector或list。
stack的内部实现使用了底层容器来存储元素,并且只能通过特定的函数来访问和操作元素。
只能对栈顶元素进行操作,只能把元素放在栈顶来
2.stack的常用函数
小tips:如果将一个数组的元素依次放入栈,再依次取出,则可以将数组翻转
stack不能遍历
3.代码示例
#include <iostream>
#include<stack>
#include<bits/stdc++.h>
using namespace std;
int main() {stack<int> mystack;// 向栈中插入元素mystack.push(10);mystack.push(20);mystack.push(30);mystack.push(40);// 获取栈顶元素cout << "栈顶元素:" << mystack.top() << endl;// 弹出栈顶元素mystack.pop();// 再次获取栈顶元素cout << "弹出一个元素后的栈顶元素:" << mystack.top() << endl;// 检查栈是否为空if (mystack.empty()) {cout << "栈为空" << endl;}else {cout << "栈不为空" << endl;}// 获取栈的大小cout << "栈的大小:" << mystack.size() << endl;return 0;}