vector与list的区别

本文对比了vector和list两种数据结构在不同场景下的性能表现。vector在小数据类型和随机访问时表现出色;而list则在大量复合数据类型和任意位置插入时更优。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)vector动态增长:不是随着每个元素的插入而自己增长的。预先存了一些存储区,使得实际分配的空间比当前所需的空间多一些,而list 表示非连续的内存区域,并通过一对指向首位元素的指针双向链接起来,因而可以两个方向进行遍历。

(2)当从vector末端删除元素的时候,性能与list差不多,当从前面或者中间删除元素的时候,list列表性能要好得多,原因是vector需要进行元素的移动。

(3)当要随机访问元素时,vector效率更高点。

(4)对于小的基本数据类型,插入100000个元素,vector性能要好。

(5)对于大的复合数据类型,比如类,插入100000个元素,list性能要好,因为vector需要重新分配内存,并且需要拷贝旧的内存区域,还必须调用拷贝构造函数与赋值构造函数。所以效率要低很多

(6)当插入大型数据类型时,用指针间接存储,性能会好很多

(7)已知需要存储的元素时,vector要好

(8)如果需要任意位置插入元素,list要好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值