deque queue and priority_queue

deque queue and priority_queue

stl-deque

deque 是双端队列,可实现栈与队列的操作。

deque支持deque_ob[i] 形式的随机存取。

stl-queue

queue的基本操作有:
入队,如例:q.push(x); 将x 接到队列的末端。
出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。
访问队首元素,如例:q.front(),即最早被压入队列的元素。
访问队尾元素,如例:q.back(),即最后被压入队列的元素。
判断队列空,如例:q.empty(),当队列空时,返回true。

查询当前容量,如例:q.size();

不支持[i]下标随机访问和clear()函数。

stl-priority_queue

普通的队列是一种先进先出的数据结构,元素在队尾进队而从队头出队。在优先队列中,元素被赋予优先级,最大(或最小)的元素在队头。

对于自定义的结构体,重载'<'(小于号)就会保证队头元素当前最大,即降序排序。这与sort刚好相反。

头文件为<queue>。此类没有clear()成员函数,只能逐个pop()。

常用的操作如下: 
empty()  如果优先队列为空,则返回真  
pop()  删除第一个元素  
push()  加入一个元素  
size()  返回优先队列中拥有的元素的个数  
top()  返回优先队列中有最高优先级的元素

#include<iostream>
#include<queue>
using namespace std;
int main(){
    priority_queue<int ,vector<int>,greater<int>> q;
    q.push(3);q.push(1);q.push(2);
    for(;!q.empty();q.pop()) cout<<q.top();
    cout<<endl;
    {
        priority_queue<int ,vector<int>> q;
        q.push(3);q.push(1);q.push(2);
        for(;!q.empty();q.pop()) cout<<q.top();
    }//此对括号作用域内的q不会与上面的q冲突
    return 0;
}
/*下面是priority_queue的定义
template<typename _Tp, typename _Sequence = vector<_Tp>,
	   typename _Compare  = less<typename _Sequence::value_type> >
    class priority_queue{};
*/
/*123
321
Process returned 0 (0x0)   execution time : 0.124 s
Press any key to continue.
*/
时间: 2024-09-19 16:09:49

deque queue and priority_queue的相关文章

STL--容器适配器(queue、priority_queue、stack)

适配器(Adaptor)是提供接口映射的模板类.适配器基于其他类来实现新的功能,成员函数可以被添加.隐藏,也可合并以得到新的功能. STL提供了三个容器适配器:queue.priority_queue.stack. 这些适配器都是包装了vector.list.deque中某个顺序容器的包装器.注意:适配器没有提供迭代器,也不能同时插入或删除多个元素. 本文地址:http://www.cnblogs.com/archimedes/p/cpp-adapter.html,转载请注明源地址. 队列(qu

C++ STL简介

一.STL简介 STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称.它是由Alexander Stepanov.Meng Lee和David R Musser在惠普实验室工作时所开发出来的.现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间. STL的代码从广义上讲分为三类:algorithm(算法).container(容器)和iterator(迭代器),几乎所有的代码都采用了模板类和模版函数的方式,这相比

[C++ 面试基础知识总结] 顺序容器

[C++ 面试基础知识总结] 顺序容器 参考书籍:<C++ Primer> 目录 C 面试基础知识总结 顺序容器 目录 顺序容器与选择 迭代器 容器的初始化和赋值 顺序容器操作 添加元素 访问元素 删除元素 改变容器大小 迭代器失效 vector对象的增长 string 操作 改变string 搜索string 数值转换 容器适配器 栈stack 队列queue 顺序容器与选择 顺序容器类型: vector 可变大小数组 deque 双端队列 list 双向链表 forward_list 单向

ACM STL容器和算法

1.4      STL 的组成 STL有三大核心部分:容器(Container).算法(Algorithms).迭代器(Iterator),容器适配器(container adaptor),函数对象(functor),除此之外还有STL其他标准组件.通俗的讲: 容器:装东西的东西,装水的杯子,装咸水的大海,装人的教室--STL里的容器是可容纳一些数据的模板类. 算法:就是往杯子里倒水,往大海里排污,从教室里撵人--STL里的算法,就是处理容器里面数据的方法.操作. 迭代器:往杯子里倒水的水壶,

C++著名类库和C++标准库介绍

C++著名类库 1.C++各大有名库的介绍--C++标准库 2.C++各大有名库的介绍--准标准库Boost 3.C++各大有名库的介绍--GUI 4.C++各大有名库的介绍--网络通信 5.C++各大有名库的介绍--XML 6.C++各大有名库的介绍--科学计算 7.C++各大有名库的介绍--游戏开发 8.C++各大有名库的介绍--线程 9.C++各大有名库的介绍--序列化 10.C++各大有名库的介绍--字符串 11.C++各大有名库的介绍--综合 12.C++各大有名库的介绍--其他库 1

STL学习小结 .

from:http://blog.csdn.net/byxdaz/article/details/4633826#comments STL就是Standard Template Library,标准模板库.这可能是一个历史上最令人兴奋的工具的最无聊的术语.从根本上说,STL是一些"容器"的集合,这些"容器"有list, vector,set,map等,STL也是算法和其它一些组件的集合.这里的"容器"和算法的集合指的是世界上很多聪明人很多年的杰作

C++标准库和标准模板库

C++强大的功能来源于其丰富的类库及库函数资源.C++标准库的内容总共在50个标准头文件中定义.在C++开发中,要尽可能地利用标准库完成.这样做的直接好处包括:(1)成本:已经作为标准提供,何苦再花费时间.人力重新开发呢:(2)质量:标准库的都是经过严格测试的,正确性有保证:(3)效率:关于人的效率已经体现在成本中了,关于代码的执行效率要相信实现标准库的大牛们的水平:(4)良好的编程风格:采用行业中普遍的做法进行开发. 在C++程序设计课程中,尤其是作为第一门程序设计课程,我们注重了语法.语言的

【温故而知新】C和C++5:STL容器技术综述

容器类是可以包含其他对象的类.STL中提供的较为常用的容器类有向量.链表.队列.集合和图等,每一种容器类都是一个模板,可以包含各种类型的对象.这些容器可以分为序列式和关联式两大类. 序列式容器主要有: 1.vector:向量类,可以认为是一种容量可变的数组,可以提供对元素的随机访问,而且可以在序列尾部快速插入和删除数据,并且在需要的时候可以方便地改变容器的大小: 2.list:双向链表类,不支持随机访问的数组类,遍历链表的元素需要从某个端点开始向前或向后遍历: 3.queue:队列,实现先进先出

C++容器使用经验总结(一)

容器 第1条:慎重选择容器类型. 标准STL序列容器:vector.string.deque和list. 标准STL关联容器:set.multiset.map和multimap. 非标准序列容器slist和rope.slist是一个单向链表,rope本质上是一"重型"string. 非标准的关联容器hash_set.hase_multiset.hash_map和hash_multimap. vector<char> 作为string的替代.(见第13条) vector作为标