STL容器之queue
来源:互联网 发布:淘宝服装店铺介绍 编辑:程序博客网 时间:2024/05/21 03:25
一,基本的成员函数
back()返回最后一个元素
empty()如果队列空则返回真
front()返回第一个元素
pop()删除第一个元素
push()在末尾加入一个元素
size()返回队列中元素的个数
二,queue 的基本操作举例如下:
1,queue入队,如例:q.push(x); 将x 接到队列的末端。
queue出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。
访问queue队首元素,如例:q.front(),即最早被压入队列的元素。
访问queue队尾元素,如例:q.back(),即最后被压入队列的元素。
判断queue队列空,如例:q.empty(),当队列空时,返回true。
访问队列中的元素个数,如例:q.size()
2,队列使用数组:
#include<iostream>
#include<queue>
using namespace std;
int main()
{
queue<int>q;
int a[6];
for(int i=0;i<5;i++)
cin>>a[i];
for(int i=0;i<5;i++)
q.push(a[i]);
for(int i=0;i<5;i++)
{
cout<<q.front()<<endl;
q.pop();
}
return 0;
}
三,#include<queue>
queue<int>q;
结构体:struct node
{
int x,y;
};
queue<node>q;
四,优先队列
优先队列容器与队列一样,只能从队尾插入元素,从队首删除元素。但是优先队列中最大的元素总是位于队首,所以出队时,并非按照先进先出的原则,而是将当前队列中最大的元素出队。元素的比较规则则默认元素值由小到大排序,可以重新载“>”来重新定义比较规则。
基本操作:
empty() 如果队列为空返回真
pop() 删除队顶元素
push() 加入一个元素
size() 返回优先队列中拥有的元素个数
top() 返回优先队列队顶元素(队列中的front()变成了top())
在默认的优先队列中,优先级高的先出队。在默认的int型中先出队的为较大的数。
((1)第一种用法,这是最常用的默认用法,即优先级高的先出队列,例如一个int优先队列,那么出队的时候就是int大的先出队列
举例:
#include<iostream>
#include<queue>
using namespace std;
priority_queue<int>q;
for(int i=i;i<=5;i++)
{
q.push(i);
}
for(int i=0;i<5;i++)
{
cout<<q.top()<<endl;
q.pop();
return 0;
}//结果输出5 4 3 2 1;
(2)那么如果想要优先队列中低优先级的元素先出队列,怎么办呢? --- 自定义优先级
自己实现比较函数
- struct cmp1
- {
- bool operator ()(int x,int y)
- {
- return x>y; //小值优先
- }
- };
- struct cmp2
- {
- bool operator ()(int x,int y)
- {
- return x<y; //大值优先
- }
- };
- STL容器之queue
- STL之queue容器
- stl之queue队列容器
- STL之stack&queue容器(笔记)
- STL之容器适配器:stack,queue , priority_queue
- STL容器之queue和priority_queue
- STL之queue和stack容器
- STL之queue和stack容器
- C++STL之queue队列容器
- STL容器之stack和queue
- STL容器总结之stack和queue
- STL容器总结之stack和queue
- STL容器之queue 单向队列
- STL容器适配器:queue
- STL-queue容器
- 标准模板库(STL)学习探究之Priority Queue容器
- 标准模板库(STL)学习探究之Queue容器
- 标准模板库(STL)学习探究之Queue容器
- 1. Two Sum
- android 高德地图 和 fresco abi so 库冲突的问题。
- [转]一名3年工作经验的程序员应该具备的技能
- 'system': identifier not found错误的解决办法
- ubuntu下安装gcc-arm-embedded-toolchain
- STL容器之queue
- 我的程序-集成块自动优化设计
- Codeforces 779D 二分求上界 Codeforces Round #402 (Div. 2)
- 07 继承
- ListView 用法(Asp.Net)
- 240. Search a 2D Matrix II
- Android网络编程核心技术(一)Apache接口
- lambda表达式的本质
- 第一行代码笔记 service基本用法