社区
C++ 语言
帖子详情
C++ list 感觉很鸡肋,不知道哪种场景适合用它
自由技艺
2020-01-10 12:38:08
。。。。。。。。。。。。。。
...全文
348
12
打赏
收藏
C++ list 感觉很鸡肋,不知道哪种场景适合用它
。。。。。。。。。。。。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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是通过链表实现,它才能真正做到真正意义上的可变长
CMake构建大型
c++
项目
C++
auto用法示例
*而是否会造成编译期的时间消耗,我认为是不会的,在未使用auto时,编译器也需要得知右操作数的类型,再与左操作数的类型进行比较,检查是否可以发生相应的转化,是否需要进行隐式类型转换。其实在
C++
98标准中就有该关键字了,但是和
c++
11中的用法差别就大、且
c++
98中的较为
鸡肋
,以下仅说
C++
11中的情况。当模板函数的返回值依赖于模板的参数时,我们依旧无法在编译代码前确定模板参数的类型,故也无从
知道
返回值的类型,这时我们可以使用auto。2、定义模板参数时,用于声明依赖模板参数的变量。.........
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语言到
C++
_33(
C++
11_上)initializer_
list
+右值引用+完美转发+移动构造/赋值
本篇为
C++
11知识点的第一篇,共两篇,初始化列表initializer_
list
+STL中的一些变化+右值引用(移动构造和移动赋值)+完美转发(万能引用)+新的默认生成的两个默认成员函数+类里新的关键字。下一篇:从C语言到
C++
_34(
C++
11_下)可变参数+ lambda+function+bind+笔试题。
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++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章