栈
#include <stack>
stack<type>s; //定义
s.empty(); //如果栈空则返回true, 否则返回false
s.size(); //返回栈中元素的个数
s.top(); //返回栈顶元素, 但不删除该元素
s.pop(); //弹出栈顶元素, 但不返回其值
s.push(); //将元素压入栈顶
队列
#include <queue>
queue<type>s; //定义
q.empty(); //如果队列为空返回true, 否则返回false
q.size(); //返回队列中元素的个数
q.front(); //返回队首元素但不删除该元素
q.pop(); //弹出队首元素但不返回其值
q.push(); //将元素压入队列
q.back(); //返回队尾元素的值但不删除该元素
双端队列
#include <deque>
deque<type>c; //定义
c.push_front('a'); //在队首加入元素
c.push_back('a'); //在队尾加入元素
c.pop_front(); //删除队首元素
c.pop_back(); //删除队尾元素
c.front(); //返回队首元素
c.back(); //返回队首元素
c.insert(pos, elem); //在pos的位置插入元素elem
c.insert(pos, n, elem); //在pos的位置插入n个elem
c.empty(); //判断是否为空
Plus
判断两个栈是否相等
int stackcmp(stack<int>s1,stack<int>s2)
{
if (s1.size() != s2.size())
return 0;
while (!s1.empty() && !s2.empty())
{
if (s1.top() == s2.top())
{
s1.pop();
s2.pop();
}
else
{
return 0;
}
}
return 1;
}