• 队列是一种先入先出(FIFO)的数据结构,数据从一端进入而从另一端移除。
  • 实际上queue是把各项操作转化为内部容器的对应调用,可以使用任何序列式容器来支持queue,默认为vector。
#include <queue>		//包含头文件
#include <iostream>
using namespace std;

	//定义
	queue<int> que1;
	queue<int, list<int>> que2;

	que1.push(1);			//push()将元素压入队尾
	que1.pop();				//pop()从队头弹出元素
	int a = que1.front();	//返回队头的元素
	int b = que1.back();	//返回队尾的元素
	bool c = que1.empty();  //判断容器是否为空
	int d = que1.size();	//返回容器中元素个数
  • 优先级队列(priority_queue)中的元素不是按FIFO的顺序存储在容器中的,而是按优先级进行排序。默认排序准则是小于。
  • priority_queue也把各项操作转化为内部容器的具体调用,可以使用任何序列式容器实现priority_queue,但由于priority_queue用到了STL的heap算法,因而内部容器必须支持随机存取迭代器,如deque。
  • 定义自己的排序准则要传递一个函数或仿函数作为二元判断式。
template <typename T> void outL(priority_queue<T, deque<T>, less<T>>& p)
{
	while(!p.empty())
	{
		cout << p.top() << ",";
		p.pop();
	}
	cout << endl;
}

template <typename T> void outL(priority_queue<T, deque<T>, less<T>>& p)
{
	while(!p.empty())
	{
		cout << p.top() << ",";
		p.pop();
	}
	cout << endl;
}
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐