C++ list 感觉很鸡肋,不知道哪种场景适合用它

自由技艺 2020-01-10 12:38:08
。。。。。。。。。。。。。。
...全文
348 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
当使用循环可以实现递归一样还原现场的目时,则应该有所选择.
轻箬笠 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是通过链表实现,它才能真正做到真正意义上的可变长

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧