导航
全部
博文收录
Ada助手
问答
登录/注册
社区
C++ 语言
帖子详情
stack vector queue 在stl实现 简要说明
titer1
2012-09-17 11:37:54
我知道 stl源码分析 详细说明了三者的实现。
但是最近复习,希望找到要点。//后来空暇来,当然读侯捷老师的书。
能不能用简要的2-3句话对 每种类型说明实现。
...全文
给本帖投票
271
6
打赏
收藏
stack vector queue 在stl实现 简要说明
我知道 stl源码分析 详细说明了三者的实现。 但是最近复习,希望找到要点。//后来空暇来,当然读侯捷老师的书。 能不能用简要的2-3句话对 每种类型说明实现。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
发表回复
按下Enter换行,Ctrl+Enter发表内容
编辑
预览
轻敲空格完成输入
显示为
卡片
标题
链接
打赏红包
titer1
2012-09-20
打赏
举报
回复
今天就给个 小结吧。
要理解 ,都已 dqueue为原型扩展。
对于map,set都是以红黑树为基础。。呵呵。。
titer1
2012-09-19
打赏
举报
回复
大家有补充,请继续哈
titer1
2012-09-19
打赏
举报
回复
看来还是自己动动手。
我想说说自己寻找的结果吧。
文章先对STL中的stack,queue,priority_queue的异同点进行解析,接着分别解析了stack,queue,priority_queue的源码结构实现方式。
stack,queue,priority_queue的相同点
之所以把stack,queue,priority_queue三者放在一起,是因为这三种容器再STL中均属于特殊容器。他们都具有如下特征:
它们均是为满足特定需求而建立的容器。stack是为了满足FILO,queue是为了满足FIFO,priority_queue则是为了满足优先级高的元素先出队列。
它们均具有一组含义非常明确的函数接口,比如stack的top,pop, push分别表示获取栈顶元素,出栈和入栈,queue的front,back, pop, push分别表示获取队列首元素,队列尾元素,出队列和入队列。
它们均不是标准的STL容器,却都是以标准STL容器为基础
。stack和queue默认是在deque的基础上封装的,priority_queue默认是在vector的基础上封装出来的。stack和queue的基础容器之所以选择deque而不选择vector等容器,是因为deque在删除元素的时候可以释放空间,同时在重新申请空间的时候无需拷贝所有元素。
它们均对基础容器有一定的要求
,这个要求是由他们满足的需求确定的。比如stack需要从栈顶进出元素和获取栈顶元素,它的基础容器则需要提供back(), push_back(), pop_back()的函数。同理queue的基础容器需要能够提供back(), push_back(), pop_front(), priority_queue的基础容器需要提供back(), push_back(), pop_back()的函数。
你可以你的需要,通过参数传递修改它们的基础容器。比如
?
stack<int, vector<int=""> > st</int,>
对于stack和queue还有一个共同点,
他们均有重载比较运算符
,也就是说你可以对二个stack或者二个queue进行字典许的比较和排序。
源:
http://www.zhongsisi.com/stl-source-structure-of-stack-queue-priority_queue/
翅膀又硬了
2012-09-18
打赏
举报
回复
只用过后两个vector是数组,内存连续。queue不连续
murataht
2012-09-18
打赏
举报
回复
首先这个应该从数据结构角度来理解,他们的共同点,区别,分别使用的问题,等等。
然后再讨论他们的实现,但是用2,3句话概括,我觉得有点难。
SKATE11
2012-09-18
打赏
举报
回复
你是要源代码吗还是 它们的结构 这个网上和书上都很多嘛
C++_
STL
范例大全带书签
6. **
Stack
/
Queue
/Priority_
queue
**:
Stack
是后进先出(LIFO)的数据结构,
Queue
是先进先出(FIFO)的数据结构,而Priority_
queue
是优先级最高的元素总是在最前面。这些容器是基于底层的顺序容器(如
vector
或deque)...
STL
_Cheat_Sheets:C ++
STL
速查表
**C++
STL
(Standard Template Library)...
STL
速查表通常包含这些关键概念的
简要
说明
、示例代码和常见用法,帮助开发者快速查找和应用相应功能。通过深入学习和实践,开发者可以更好地利用C++
STL
的强大功能来解决问题。
C++进阶课程讲义_v1.0.4.pdf
8.2 C++异常处理的
实现
35 8.2.1异常基本语法 35 8.2.2栈解旋(unwinding) 39 8.2.3异常接口声明 40 8.2.4异常类型和异常变量的生命周期 40 8.2.5异常的层次结构(继承在异常中的应用) 46 8.3标准程序库异常 47 8.4...
数据处理面试题.pdf
序列式容器包括
vector
、list、deque、
stack
、
queue
和heap。关联式容器则包括set、map、multiset和multimap,这些容器内部结构通常使用红黑树(RB-tree)来完成。除此之外,hashtable(散列表)和基于hashtable
实现
的...
c++大纲资料.txt
12. 标准模板库(
STL
)是C++标准库中的重要组成部分,涉及容器适配器(如
stack
、
queue
、priority_
queue
)、迭代器的使用、算法(sort、find、copy等)、以及函数对象与绑定器(std::bind、std::function)。...
C++ 语言
65,171
社区成员
250,527
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
积分榜
荣誉榜
原力榜
学习榜
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章