【STL】队列的实现以及应用
来源:互联网 发布:淘宝法院拍卖房子税费 编辑:程序博客网 时间:2024/06/04 23:34
队列的概念
定义
队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作
的特殊线性表。
进行插入操作的一端称为队尾,通常称为入队列;进行删除操作的一端称为队头,通常称为出队列。
队列具有先进先出的特性(FIFO)。
顺序队列
顺序队列就是用数组实现的,定义两个变量front和rear指向队首和队尾
实现方式一:队头固定在数组的起始位置,入队时队尾移动,出队时,将队尾到队首的元素向前移动一位。
实现方式二,队头不是固定的,出队时,将队首向后移动。
循环队列
将头尾相接的顺序队列称为循环队列。
怎么判空?
1 少用一个存储单元,即那个单元标记为起始位置
2设置一个计数器
链式队列
队列的链式存储结构,其实就是线性表的单链表,只不过它只能尾进头出而异,将其称为链队列。
STL中实现的queue
STL中queue的实现是默认以deque为底层实现的 ,同样底层也可以是list实现。
template < class T, class Container = deque<T> > class queue;
操作函数
优先级队列priority_queue
优先级队列是拥有权值概念的queue,同样只允许在底端插入元素,顶端取出元素。其内的元素并非按插入的次序排列,而是按照权值排序,最大的权值排在前面。同样也是容器适配器。
默认情况下,priority_queue是利用最大堆实现的。
template < class T, class Container = vector<T>, class Compare = less<typename Container::value_type> > class priority_queue
默认less比较器,创建的对象为递减的序列。
priority_queue的函数
队列的应用
1、生产者消费者模型
2、消息队列
3、排队现象
4、网络数据传输
阅读全文
0 0
- 【STL】队列的实现以及应用
- 【STL】栈的实现原理以及应用
- 队列的概念、实现以及应用
- 优先级队列的简单实现及STL举例应用
- 哈夫曼树 优先队列STL的应用
- STL库之队列的简单应用
- STL库中 队列的应用
- STL 中优先队列,队列以及statck的使用方法(priority_queu)
- 队列的定义以及实现
- 【C++】【STL】优先队列的实现
- STL 优先队列实现的DIJSKTRA算法
- java实现队列及队列的应用
- STL 队列模板实现
- STL-queue实现队列
- 队列的实现与应用
- 队列以及集合size()的应用
- 消息队列的应用场景以及优缺点
- Nodejs 数组的队列以及forEach应用
- react
- 网易2018校招内推笔试-彩色砖块-python2,python3,C++解法
- JavaScript 数组去重的完美解决思路
- Deep MNIST for Experts解读(三):deepnn源码分析与AdamOptimizer
- Hadoop+HBase+Zooper 关系及安装
- 【STL】队列的实现以及应用
- left join on 里用逗号分隔表名
- 频道拖拽
- Qt 添加右键菜单
- C++之认识template元编程(48)---《Effective C++》
- Python3之反射及反射在模块上的应用
- Andrew Ng机器学习课程笔记--week9(下)
- PyAutoGUI 简介
- sql语句条件执行顺序