STL queue/priority_queue类模板

  • 队列是一种先入先出(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;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值