STL总结之queue, priority_queue, stack
2013-10-07 21:13
477 查看
之所以把这三个容器放在一起,是因为他们都是容器适配器.
STL中queue就是我们常用的FIFO队列,实现是一个容器适配器,这种数据结构在网络中经常使用.
queue的模板声明:
[align=left]template < class T, class Container = deque< T> > class queue;[/align]
[align=left]这里第二个参数不再是一个内存分配器,而是一个容器,也就是这里我们可以传递一个deque<T>, list<T>, vector<T>等容器,只要这个容器支持queue中调用的借口.因此queue只负责统一调用接口.[/align]
[align=left]queue的成员函数很简单,成员函数也只是对我们设置的容器进行调用,因此不多列举.[/align]
[align=left] [/align]
[align=left]STL中priority_queue也是一个容器适配器,故名思意它是一个带优先级的队列.[/align]
[align=left]priority_queue模板声明如下:[/align]
[align=left]template < class T, class Container = vector< T >,[/align]
[align=left]class Compare = less< typename Container :: value_type> > class priority_queue ;[/align]
[align=left]适配的容器我们可以自己设置,而比较规则也可以自定义,默认适配容器时vector, 用<进行比较.[/align]
[align=left] [/align]
[align=left]priority_queue内部建立了一个堆, 默认是大堆, 我们进行push, pop操作实际上就是对堆得插入和删除,而top操作访问的是堆顶元素.[/align]
[align=left]这里不对堆进行展开说明,在STL算法时再展开.[/align]
[align=left] [/align]
[align=left]STL中stack是LIFO(后进先出)队列,我们经常使用的内存栈,实现迷宫,汉诺塔时用的就是这种数据结构.[/align]
[align=left] [/align]
[align=left]stack模板声明如下:[/align]
[align=left]template < class T, class Container = deque< T> > class stack;[/align]
[align=left]我们可以使用list,vector,deque进行适配,默认是deque.[/align]
[align=left]栈的操作每次只能操作栈顶元素,也就是最后一个入栈的元素.[/align]
[align=left]push向栈顶压入元素, pop弹出栈顶元素,top访问栈顶元素.[/align]
STL中queue就是我们常用的FIFO队列,实现是一个容器适配器,这种数据结构在网络中经常使用.
queue的模板声明:
[align=left]template < class T, class Container = deque< T> > class queue;[/align]
[align=left]这里第二个参数不再是一个内存分配器,而是一个容器,也就是这里我们可以传递一个deque<T>, list<T>, vector<T>等容器,只要这个容器支持queue中调用的借口.因此queue只负责统一调用接口.[/align]
[align=left]queue的成员函数很简单,成员函数也只是对我们设置的容器进行调用,因此不多列举.[/align]
[align=left] [/align]
[align=left]STL中priority_queue也是一个容器适配器,故名思意它是一个带优先级的队列.[/align]
[align=left]priority_queue模板声明如下:[/align]
[align=left]template < class T, class Container = vector< T >,[/align]
[align=left]class Compare = less< typename Container :: value_type> > class priority_queue ;[/align]
[align=left]适配的容器我们可以自己设置,而比较规则也可以自定义,默认适配容器时vector, 用<进行比较.[/align]
[align=left] [/align]
[align=left]priority_queue内部建立了一个堆, 默认是大堆, 我们进行push, pop操作实际上就是对堆得插入和删除,而top操作访问的是堆顶元素.[/align]
[align=left]这里不对堆进行展开说明,在STL算法时再展开.[/align]
[align=left] [/align]
[align=left]STL中stack是LIFO(后进先出)队列,我们经常使用的内存栈,实现迷宫,汉诺塔时用的就是这种数据结构.[/align]
[align=left] [/align]
[align=left]stack模板声明如下:[/align]
[align=left]template < class T, class Container = deque< T> > class stack;[/align]
[align=left]我们可以使用list,vector,deque进行适配,默认是deque.[/align]
[align=left]栈的操作每次只能操作栈顶元素,也就是最后一个入栈的元素.[/align]
[align=left]push向栈顶压入元素, pop弹出栈顶元素,top访问栈顶元素.[/align]
相关文章推荐
- STL模板总结归纳(stack,queue和priority_queue)
- STL 整理map、set、vector、list、stack、queue、deque、priority_queue
- C++的STL模板set,multiset,map,multimap,deque,list,stack,queue和priority_queue
- C++ STL入门教程(4)——stack(栈),queue(队列),priority_queue(优先队列)的使用(附完整程序代码)
- STL - stack&queue&priority_queue
- 1/20集训一 STL E.(模拟stack queue priority_queue) I Can Guess the Data Structure!
- STL 整理(map、set、vector、list、stack、queue、deque、priority_queue)
- STL 整理1(map、set、vector、list、stack、queue、deque、priority_queue)
- STL 整理(map、set、vector、list、stack、queue、deque、priority_queue)
- STL 整理(map、set、vector、list、stack、queue、deque、priority_queue)(转)
- 从零开始学C++之STL(十一):容器适配器(stack、 queue 、priority_queue)源码浅析与使用示例
- 【c++】STL里的priority_queue用法总结
- 【c++】STL里的priority_queue用法总结
- C++的STL容器之容器适配器:stack、queue、priority_queue
- STL之 stack/queue/priority_queue
- STL 整理(map、set、vector、list、stack、queue、deque、priority_queue)
- stl 顺序容器适配器之stack, priority_queue, queue用法
- STL 整理(map、set、vector、list、stack、queue、deque、priority_queue)
- stl之适配器容器——stack, queue, priority_queue
- STL源码结构解析之Stack,Queue,Priority_Queue