C++对比vector和list

本文详细比较了C++中的vector和list数据结构,vector适合高效存储和随机访问,但插入删除效率低;list支持任意位置插入删除,但不支持随机访问且空间利用率较低。
摘要由CSDN通过智能技术生成

前言

在本篇文章中,我们将会介绍list和vector的优缺点

一、vector

vector是动态数据表,底层是一块连续的物理空间

优点

🌟🌟支持下标随机访问,时间复杂度为O(1)
🌟🌟尾插尾删效率高
🌟🌟空间利用率高,缓存利用率高,不容易造成内存碎片

缺点

🌟🌟任意位置插入删除效率低,可能需要数据挪动,时间复杂度O(N)
🌟🌟增容,需要开辟新空间,拷贝数据,还可能造成空间浪费

应用场景

🌟🌟需要高效存储,支持随机访问,不关心插入删除效率

二、list

list是带头双向循环链表,底层是一块快物理空间不连续的节点构成

优点

🌟🌟任意位置插入删除效率高,不需要挪动数据
🌟🌟没有空间浪费,按需申请释放

缺点

🌟🌟不支持下标随机访问,访问某个元素时间复杂度为O(1)
🌟🌟空间利用率低,缓存利用率低,小节点容易造成内存碎片

应用场景

🌟🌟大量插入和删除操作,不关心随机访问

总结

以上就是今天要讲的内容,本文仅仅对比vector和list,希望对大家的学习有所帮助,仅供参考 如有错误请大佬指点我会尽快去改正 欢迎大家来评论~~ 😘 😘 😘

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lim 鹏哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值