【语法】STL容器适配器:队列,优先队列,堆,栈
来源:互联网 发布:windows界面开发库 编辑:程序博客网 时间:2024/05/09 11:25
deque
deque在分段的连续内存空间维护其整体连续的假象
queue<double> values; //使用push函数,将元素添加到队列中 values.push(3.2); values.push(9.8); values.push(5.4); cout<<"popping from values: "; //使用empty函数,判断队列是否为空 while (!values.empty()) { cout<<values.front()<<' '; //当队列还有其他元素时,使用front函数读取(但不删除)队列的第一个元素,用于输出 values.pop(); //用pop函数,删除队列的第一个元素 }
优先队列
优先队列缺省使用最大堆实现,后者缺省利用vecotr实现
priority_queue<int> p_q_max; priority_queue < int, vector<int>, greater<int>> p_q_min; srand(1); for (auto i = 0; i < 10;++i) { int tmp = rand(); p_q_min.push(tmp); p_q_max.push(tmp); } while (!p_q_max.empty()) { cout<<p_q_max.top()<<" "; p_q_max.pop(); } cout << endl; while (!p_q_min.empty()) { cout << p_q_min.top() << " "; p_q_min.pop(); } cout << endl;
堆
不是容器组件,幕后英雄,一般利用vector为实现
int array[9] = {0,3,2,1,4,8,5,7,6}; vector<int> vec(array,array+9); make_heap(vec.begin(), vec.end());//建堆,STL提供的是max-heap vec.push_back(10); push_heap(vec.begin(), vec.end());//维护堆 //将最后一个元素视为新增元素,将其余元素视为完整的heap pop_heap(vec.begin(),vec.end());//弹出堆顶 //堆顶移到最后一位
栈
stack<int, list<int>> mystack; mystack.push(1); mystack.push(2); mystack.push(3); cout << mystack.top() << endl; mystack.pop(); cout << mystack.top() << endl; mystack.pop(); cout << mystack.top() << endl; mystack.pop();
阅读全文
0 0
- 【语法】STL容器适配器:队列,优先队列,堆,栈
- 容器适配器(队列、优先队列、栈)
- 【优先队列】【堆】STL之priority_queue、make_heap()、push_heap()、pop_heap()、容器适配器
- 容器适配器—优先队列
- STL 容器 priority_queue(优先队列)
- STL容器之优先队列
- STL容器之优先队列
- STL容器之优先队列
- STL容器之优先队列
- STL容器之优先队列
- STL容器之优先队列
- STL容器之优先队列
- STL容器之优先队列
- STL容器之优先队列
- STL容器之优先队列
- STL容器之优先队列
- STL容器_优先队列
- STL--优先队列,队列,栈
- deadline复习汇总:攻受之间的爱恋之城
- final关键字
- libevent源码分析(3)--2.1.8--结构体struct event_base和struct eventop
- Python与shell命令互传
- 音视频数据处理(15)--- H264的分层结构
- 【语法】STL容器适配器:队列,优先队列,堆,栈
- github渲染mathjax公式
- 操作linux终端的常用快捷键
- 前端安全栈
- 如果为空值
- 工厂方法模式
- java之构造内部类
- 互联网下半场,向左还是向右
- linux usb驱动详解