【C++】STL 容器 list

本文对比了list容器与vector/deque的区别,详细介绍了list容器的内存分配方式、元素插入规则及访问方式,并针对不同需求提供了选择建议。

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

list容器与vector/deque比较类似,都是用来存放数组的。

最大的区别在于存放规则:

对于vector/deque,它存放数组会找一段连续的内存空间来存放,这也就是说,vector中的元素并不能被随意插入,只能在头部或尾部插入;

list存放数组,它的内存空间并不是连续的,而是任意的,那么它就可以被随意插入元素,很轻松。

这样的存放规则就注定他们的读取规则也不一样:

vector/deque每个元素是挨着的,我可以在上一个元素的地址的基础上加一,来找到下一个元素(也就是C中[]的方法);

list的话就肯定不能这样做了;由于list中每个元素的信息中,除了本身的信息外,它还有一个向前指针,指向前一个元素,以及一个向后指针,指向后一个元素,这样一来,list中访问元素的话,就只能利用迭代器实现了。

那么他们的应用场景就知道了:

如果需要高效的随机存取,而不在乎插入和删除的效率,使用vector;
如果需要大量的插入和删除,而不关心随机存取,则应使用list。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值