vector和list的区别

本文详细比较了C++标准模板库中vector和list两种容器的底层实现、内存分配、数据访问方式、插入删除操作的影响及适用场景。指出vector适合于频繁访问元素,而list更适合频繁插入和删除元素。

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

  • (1)vector的底层实现是数组;而list的底层实现是双向链表。
  • (2)vector的内存的空间时连续的;而list的内存空间时不连续的。
  • (3)vector支持数据的随机访问;而list不支持数据的随机访问。
  • (4)vector在插入时如果空间不够才会自动申请新的空间的扩容,但容器中数据删除时不会释放空间;而list在每次插入和删除都会申请和释放空间。
  • (5)vector在数据的插入或删除都可能会导致迭代器失效(插入或删除位置后面额迭代器全部失效);而list的在插入时不会导致迭代器失效,而在删除时会导致当前迭代器失效。
  • (6)vector在删除和插入元素时会导致内存拷贝(插入位置之后的元素需要全部后移或删除位置的元素需要全部前移);而list不会。
  • (7)vector适用于对容器中元素进行频繁的访问的情况;而list适用于对容器中元素进行频繁插入和删除的情况。
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值