当前位置: 首页 > article >正文

宁德时代嵌入式面试题及参考答案(万字长文)

vector 和 list 的主要区别是什么?

向量(vector)和链表(list)是 C++ 中两种常用的容器。

从底层数据结构来讲,vector 是基于连续的内存存储的动态数组。这使得它可以通过索引快速访问元素,时间复杂度为 O (1)。例如,如果有一个 vector<int> v,要访问 v [3],可以直接定位到内存中的相应位置。并且,vector 在末尾插入和删除元素效率较高,在末尾插入元素通常是 amortized constant time(平摊后的常数时间),因为如果空间不够,vector 会重新分配一块更大的连续内存,然后把原来的数据复制过去。但是在中间或者开头插入和删除元素效率较低,因为需要移动插入或删除位置之后的所有元素,时间复杂度为 O (n)。

而 list 是一个双向链表,它的每个节点包含数据和指向前一个节点以及后一个节点的指针。这使得在 list 中任意位置插入和删除元素都比较高效,时间复杂度为 O (1)。比如,要在一个 list 的中间插入一个元素,只需要调整相应节点的指针即可。不过,list 不支持像 vector 那样通过索引快速访问元素,要访问一个特定位置的元素,需要从链表头࿰


http://www.kler.cn/a/378718.html

相关文章:

  • 【Linux】命令行参数 | 环境变量
  • vue+django+neo4j航班智能问答知识图谱可视化系统
  • ES + SkyWalking + Spring Boot:日志分析与服务监控(三)
  • 气象大模型学习笔记
  • 2024 Rust现代实用教程Generic泛型
  • Ant Design Pro 框架 - fieldProps 的使用
  • Linux驱动开发(3):字符设备驱动
  • Linux系统性能调优
  • 《Java 实现冒泡排序:详细解析与示例代码》
  • Django安装
  • MongoDB Shell 基本命令(三)聚合管道
  • 银河麒麟v10 xrdp安装
  • Tomcat 和 Docker部署Java项目的区别
  • uniapp使用中小问题及解决方法集合
  • ARM base instruction -- bfxil
  • 第五篇: 使用Python和BigQuery进行电商数据分析与可视化
  • 【bug解决】 g++版本过低,与pytorch不匹配
  • 下载安装COPT+如何在jupyter中使用(安装心得,windows,最新7.2版本)
  • postgresql增量备份系列一
  • TensorRT-LLM的k8s弹性伸缩部署方案
  • 数据转换 | Matlab基于SP符号递归图(Symbolic recurrence plots)一维数据转二维图像方法
  • Unity XR Interaction Toolkit 开发教程(4)XR Origin:追踪参考系与相机高度【3.0以上版本】
  • 三层交换技术,eNSP实验讲解
  • 【大模型开发指南】llamaindex配置deepseek、jina embedding及chromadb实现本地RAG及知识库(win系统、CPU适配)
  • Redis系列---数据管理
  • git入门教程8:git高级分支管理