社区
C++ 语言
帖子详情
C++ list 感觉很鸡肋,不知道哪种场景适合用它
自由技艺
2020-01-10 12:38:08
。。。。。。。。。。。。。。
...全文
389
12
打赏
收藏
C++ list 感觉很鸡肋,不知道哪种场景适合用它
。。。。。。。。。。。。。。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
智者知已应修善业
2020-01-13
打赏
举报
回复
当使用循环可以实现递归一样还原现场的目时,则应该有所选择.
轻箬笠
2020-01-13
打赏
举报
回复
版主的回答很正啊。我觉得没有特殊需求,随便用吧,看个人喜好。
sdghchj
2020-01-13
打赏
举报
回复
我不用java,所以我觉得java鸡肋
qq_40162781
2020-01-13
打赏
举报
回复
经常插入和删除选择list
ggglivw
2020-01-12
打赏
举报
回复
说明你没使用LIST的强需求
ggglivw
2020-01-12
打赏
举报
回复
std::list相当有用,我很少用vector,基本上都是list, map,set这种
yshuise
2020-01-10
打赏
举报
回复
deque是个复杂的数据结构,没有想象中的好
smwhotjay
2020-01-10
打赏
举报
回复
list插入 删除效率高。
自由技艺
2020-01-10
打赏
举报
回复
(1)如果你需要高效的随即存取,而不在乎插入和删除的效率,使用vector (2)如果你需要大量的插入和删除,而不关心随机存取,则应使用list (3)如果你需要随机存取,而且关心两端数据的插入和删除,则应使用deque
weixin_43514850
2020-01-10
打赏
举报
回复
版主解答的很详细,学习了
Italink
2020-01-10
打赏
举报
回复
使用vector就会带来一些问题: 当超出容量时,就会需要分配空间,转移数据,析构,这样会耗费很多时间,所以使用vector,最好一开始就定义足够的空间,而不是为了单单简单通过push_back来增加元素,这样效率非常低,因为会有很多次的空间分配等 另一个问题是,如果超出capacity,重新分配空间,元素的地址就发生了变动,如果原来有指针指向内部元素,那么这个时候就会变成野指针,而使用list就可以避免这个问题
Italink
2020-01-10
打赏
举报
回复
当你了解vector是如何实现可变长,就会知道为什么会需要list,按理来说,数组的长度是固定的,而vector只是实现分配一部分空间(capacity),当容量不足时,重新开辟一块两倍于原空间大小的空间,将原空间的数据转移过去,然后再析构原空间,list是通过链表实现,它才能真正做到真正意义上的可变长
C++
11、
C++
14、
C++
17、
C++
20新特性总结(5万字详解)
文章目录
C++
11是什么,
C++
11标准的由来
C++
auto类型推导完全攻略auto 类型推导的语法和规则auto 的高级用法auto 的限制auto 的应用使用 auto 定义迭代器auto 用于泛型编程
C++
decltype类型推导完全攻略exp 注意事项decltype 推导规则decltype 的实际应用汇总auto和decltype的区别语法格式的区别对 cv 限定符的处理对引用的处理总结
C++
返回值类型后置(跟踪返回值类型)
C++
11对模板实例化中连续右尖括号>>的改进扩展阅
C++
auto用法示例
*而是否会造成编译期的时间消耗,我认为是不会的,在未使用auto时,编译器也需要得知右操作数的类型,再与左操作数的类型进行比较,检查是否可以发生相应的转化,是否需要进行隐式类型转换。其实在
C++
98标准中就有该关键字了,但是和
c++
11中的用法差别就大、且
c++
98中的较为
鸡肋
,以下仅说
C++
11中的情况。当模板函数的返回值依赖于模板的参数时,我们依旧无法在编译代码前确定模板参数的类型,故也无从
知道
返回值的类型,这时我们可以使用auto。2、定义模板参数时,用于声明依赖模板参数的变量。.........
【
C++
11】{}初始化、std::initializer_
list
、decltype、STL新增容器
十年磨一剑——
C++
11
C++
11新特性
C++
11是
C++
的第二个主要版本(前一个是
C++
98 而后一个是
C++
17),并且是从
C++
98 起的最重要更新。它引入了大量更改,标准化了既有实践,并改进了对
C++
程序员可用的抽象。 在它最终由 ISO 在 2011 年 8 月 12 日承认前,人们曾使用名称“
C++
0x”,因为它曾被期待在 2010 年之前发布。
C++
03 与
C++
11 期间花了 8 年时间,故而这是迄今为止最长的版本间隔。从那时起,
C++
规则地每 3 年更新一次。
C++
deque的总结
deque 1. deque是什么? deque(发音类似“deck”),是双端队列不规则的首字母缩写,双端队列是动态大小的序列式容器,其可以像两端进行伸缩。 特定的库可以以不同的方式实现deque,但通常都是一种动态数组。不论在何种情况下,它都允许通过随机访问迭代器直接访问单个元素,可以根据需要动态的伸缩。 因此,deque提供了一些与vector相似的功能,但deque在头部和尾部进行数据插...
C++ 语言
65,187
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章