c++学习笔记——队列

队列

头文件:

#include <queue>

定义:

queue<typename> name;
//typename为任意数据类型,name为所定义队列名

常用函数:

函数名返回值
q.empty( )判断队列是否为空
q.size( )返回当前队列元素个数
q.pop( )删除队首元素
q.push(x)向队尾添加元素
q.front( )返回队头元素
q.back( )返回队尾元素

优先队列

简介:
即数据结构中的堆,不按照入队顺序输出元素,而是根据关键字优先级输出,默认是从大到小输出。

头文件:

#include <queue>

定义:

  1. 默认方式,队内元素按照从大到小排列
priority_queue<typename> name;
//typename为任意数据类型,name为所定义优先队列名
  1. 变式1:队内元素按照从小到大排列
priority_queue<Type, Container, Functional> name;
/**
第一个参数表示数据的类型;
第二个参数保存该数据类型数据的容器(默认情况下为vector)
第三个参数表示自定义的优先级规则(greater表示从小到大,默认为less,表示从大到小)
**/

priority_queue<int, vector<int>, greater<int> > q;//队内元素从小到大排列,小顶堆
priority_queue<string> q;//队内元素从大到小排列,大顶堆
//这里要有个空格,否则会被识别为右移符号
  1. 变式2:数据类型不再是基本数据类型,而是自定义类型
//方法1:在结构体内重载运算符<
struct data
{
	int x;
	string s;
	bool operator<(const data& a) const
	{
		return x < a.x;
	}
}

//方法2:重写operator()
struct data
{
	int x;
	string s;
}
struct comp
{
	bool operator() (data a, data b)
	{
		return a.x < b.x;
	}
}
priority_queue<data, vector<data>, comp> q;

常用函数:(仅给出与队列有差别的函数)

函数作用
q.top( )输出优先队列的队首元素,即堆顶元素

有机会再更原理,现在还没学…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值