栈 队列 双端队列 | c++常用STL库函数

#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;
}
发布了13 篇原创文章 · 获赞 0 · 访问量 262

猜你喜欢

转载自blog.csdn.net/Caiyii530/article/details/105052383