stack翻译为栈,是一个后进先出(LIFO)的容器,相当于一个弹匣,后压入的子弹会先射出来。
这恰好与队列先进先出的特点相反。
定义
需要添加#include <stack>与using namespace std;
stack<typename> name;
typename可以是任何数据类型与容器。
元素访问
stack只能通过top()来访问栈顶元素
#include <iostream>
#include <stack>
using namespace std;
int main() {
stack<int> st;
for(int i = 1; i <= 3; i ++) {
st.push(i);
}
cout << st.top() << endl;
return 0;
}
/*
result: 3
*/
常用函数
常用函数有
push()——将x入栈
pop()——弹出栈顶元素
empty()——判空
size()——元素个数
除了top之外,其余用法与队列相同,区别在于队首与栈顶。
#include <iostream>
#include <stack>
using namespace std;
int main() {
stack<int> st;
for(int i = 1; i <= 3; i ++) {
st.push(i);
}
cout << st.top() << ' ';
while(!st.empty()) {
st.pop();
cout << st.size() << ' ';
}
return 0;
}
/*
result: 3 2 1 0
*/