1.栈
栈先进后出。
#include<stack>//头文件
stack<int> s;//创建int型stack
//stack基本函数
s.push(item);//将item压入栈顶
s.pop();//删除栈顶的元素,但是不会返回
s.top();//返回栈顶的元素,但是不会删除
s.size();//返回栈中元素的个数
s.empty();//检查栈是否为空,如果为空返回ture,否则返回false;
把stack想象为一个只有口的容器,最先push()进去的元素就在最下面,就在栈底。而栈顶就是容器的最上面,即最后push()入容器的元素。
2.队列
队列先进先出。
#include<queue>//头文件
queue<int> q;//创建int型队列
//queue基本函数
q.push(item)//将item压入队列尾部
q.pop();//删除队尾首元素,但不返回
q.front();//返回队首元素,但不删除
back();//返回队尾元素,但不删除
q.size();//返回队列中元素的个数
q.empty();//检查队列是否为空,如果为空返回ture,否则返回false
队列与栈的区别在于队列没有底,我们可以将队列看作一节管子。
第一个push()进入队列的元素自然就是队首,
最后一个push()进入队列的元素就是队尾。