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. */
最后更新:2017-04-03 12:56:01
上一篇:
stl-vector
下一篇:
查找与散列(Hash)
使用Java调用Oracle数据库的存储过程实例
战胜柯洁后,AI在悄悄潜入人类下一个智慧堡垒
Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom
spring-boot+spring-session集成
阿里云大学安全课程-阿里云首席安全研究员吴瀚清:WannaCry事件最“细思恐极“的一个事实是?
【 Release Notes】CodePipeline 产品更新
Java面向对象高级--final关键字
Apache下实现禁止目录浏览
Wi-Fi曝安全漏洞 面临KRACK攻击风险
Spring Cloud 接入 EDAS 之服务发现篇