接着学习下一个容器,stack,栈容器。当然后面还要学习一个队列容器,两个有点相似一般一起对比和学习。本篇主要学习栈容器的基本概念和常用接口的基本使用。
1.什么是stack
stack是一种先进后出(First In Last Out)FILO的容器,它只有一个出口。
2.stack的特点
下面这张图给出栈的特点
栈中只有顶部元素运行外部使用,所以,栈容器没有遍历操作。
3.stack的常用API
根据上面这张图,栈就基本操作API都在顶部元素的入栈和出栈操作,还有统计元素个数和容量相关接口。
3.1 stack的构造函数
函数原型
stack<T> stk; // 默认构造,采用模板类实现
stack(const stack &stk); //拷贝构造函数
3.2 stack的赋值caoz
重载了等号(=)
3.3 stack的存取操作
push(ele); //向栈顶添加元素
pop(); //从栈顶移除第一个元素
top(); //返回栈顶元素
3.4 stack大小
empty(); // 判断栈是否为空
size(); //返回栈的大小
代码练习
#include <iostream>
#include <string>
#include <stack>
using namespace std;
void test01()
{
// stack 构造函数
stack<int> stk;
//添加元素
cout << "is Empty? " << stk.empty() << endl;
stk.push(10);
stk.push(20);
stk.push(30);
stk.push(40);
stk.push(50);
//获取栈顶元素
cout << "top element: " << stk.top() << endl;
// 大小
cout << "current size: " << stk.size() << endl;
// 移除栈顶元素
stk.pop();
cout << "current size: " << stk.size() << endl;
}
int main()
{
test01();
system("pause");
return 0;
}
运行结果