1 stack基本概念
特点:栈stack
是先进后出(FILO
,First In Last Out)的数据结构,只有栈顶一端可插入或删除数据。
栈顶元素:top()
,栈中只有栈顶的元素可被外界访问和使用,故栈不允许遍历行为。
入栈 / 压栈:push()
,向栈顶压入元素。
出栈 / 弹栈:pop()
,从栈顶弹出元素。
2 stack常用接口
注:使用stack容器时,需包含头文件
#include <stack>
。
构造函数:
①stack<T> stk;
:默认无参构造函数,采用类模板实现。
②stack(const stack &stk);
:拷贝构造函数,使用已有stack对象初始化新的对象。
赋值操作:
stack& operator=(const stack &stk);
:重载赋值运算符,使用目标stack容器,对当前stack容器赋值。
数据存取:
push(elem);
:向栈顶压入元素。
pop();
:从栈顶弹出元素。
top();
:返回栈顶元素。
大小操作:
empty();
:判断栈是否为空。
size();
:返回栈的大小。
示例:栈的常用接口
#include <iostream>
using namespace std;
#include <stack>
int main() {
//创建stack容器
stack<int> s;
//压栈
s.push(1);
s.push(2);
s.push(3);
s.push(4);
s.push(5);
cout << "当前栈的大小:" << s.size() << endl; //5
while (!s.empty()) {
cout << "当前栈顶元素:" << s.top() << endl; //5→4→3→2→1
//出栈
s.pop();
}
cout << "当前栈的大小:" << s.size() << endl; //0
return 0;
}