欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 八卦 > C++中的vector和list有什么区别?

C++中的vector和list有什么区别?

2025/4/30 11:21:23 来源:https://blog.csdn.net/Garvin_/article/details/147615531  浏览:    关键词:C++中的vector和list有什么区别?

1.vector:

底层:动态数组,可以快速访问随机元素;

内存分配:分配在连续的内存上;

时间复杂度:
(1)插入或删除元素:在队头或队尾插入或删除元素时可以实现O(1)的时间复杂度;在队中时的时间复杂度为O(n);(2)访问元素:O(1)的时间复杂度。

内存管理:由于在内存上是连续的,所以可以利用缓存机制来快速访问元素。

2.list:

底层:双向链表,可以快速插入元素;

内存分配:在内存上是离散存储的;

时间复杂度:(1)插入或删除元素时:在任意位置都是O(1)的时间复杂度;(2)访问元素:O(n)的时间复杂度。

内存管理:由于离散储存在内存上,因此在插入元素时不需要移动大量内存。

3.使用情景:

vecetor:(1)当需要在队首或队尾快速插入或删除元素时;(2)当需要快速访问随机元素时;(3)当更关心内存使用效率时;

list:(1)当需要快速在任意位置插入或删除元素时;(2)不需要快速访问随机元素;(3)在插入或删除时不希望移动大量内存。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词