C++(STL):12--- list基本介绍
list 容器,又称双向链表容器,即该容器的底层是以双向链表的形式实现的。这意味着,list 容器中的元素可以分散存储在内存空间里,而不是必须存储在一整块连续的内存空间中。
图 1 展示了 list 双向链表容器是如何存储元素的。
图 1 list 双向链表容器的存储结构示意图
可以看到,list 容器中各个元素的前后顺序是靠指针来维系的,每个元素都配备了 2 个指针,分别指向它的前一个元素和后一个元素。其中第一个元素的前向指针总为 null,因为它前面没有元素;同样,尾部元素的后向指针也总为 null。
基于这样的存储结构,list 容器具有一些其它容器(array、vector 和 deque)所不具备的优势,即它可以在序列已知的任何位置快速插入或删除元素(时间复杂度为O(1))。并且在 list 容器中移动元素,也比其它容器的效率高。
使用 list 容器的缺点是,它不能像 array 和 vector 那样,通过位置直接访问元素。举个例子,如果要访问 list 容器中的第 6 个元素,它不支持容器对象名[6]这种语法格式,正确的做法是从容器中第一个元素或最后一个元素开始遍历容器,直到找到该位置。
C++(STL):12--- list基本介绍相关推荐
- [C++ STL] 各容器简单介绍
[C++ STL] 各容器简单介绍 目录 一.什么是STL? 二.容器(Containers) 2.1 vector 2.2 deque 2.3 list 2.4 set 2.5 map 2.6 容器 ...
- 第12章方差分析介绍
第1章统计学入门 第2章频数分布略 第3章集中趋势的测量 第4章变异性 第5章分数的位置及标准化分布 第6章概率和正态分布 第7章概率和样本:样本均值的分布 第8章假设检验介绍 第9章t检验介绍 第1 ...
- 12.1 LNMP架构介绍 12.2 MySQL安装 12.3/12.4 PHP安装 12.5 Nginx介绍
2019独角兽企业重金招聘Python工程师标准>>> 12.1 LNMP架构介绍 和LAMP不同的是,提供web服务的是Nginx 并且php是作为一个独立服务存在的,这个服务叫 ...
- java 文档比较功能_Java 12 新特性介绍,快来补一补
Java 12 早在 2019 年 3 月 19 日发布,它不是一个长久支持(LTS)版本.在这之前我们已经介绍过其他版本的新特性,如果需要可以点击下面的链接进行阅读. Switch 表达式 (JEP ...
- C++STL库:String介绍
C++STL库 学习方法:使用STL的三个境界:能用,明理,能扩展. 今天我们开启一个新主题:C++数据结构之STL库,我们将介绍STL库里常用库的用法与实现过程. 常用库 库名称 所需头文件 数据结 ...
- C++ STL 标准模板库介绍与入门
目录 1.概述 1.1.C++ 标准库 1.2.Boost库 2.STL 版本 2.1.HP 原始版本 2.2.P. J. 实现版本 2.3.RW 实现版本 2.4.SGI 实现版本 2.5.STLp ...
- 【Linux云计算架构:第一阶段-Linux操作系统入门到精通】第12章——硬盘介绍和磁盘管理
本节所讲内容: 12.1 SAS-SATA-SSD-SCSI-IDE硬盘讲解 12.2 磁盘分区工具和挂载 12.3 实战扩展swap分区 12.1 SAS-SATA-SSD-SCSI-IDE硬盘讲解 ...
- Java 12 新特性介绍
Switch 表达式 (JEP 325) 在 Java 12 中,对 Switch 表达式的写法进行了改进,虽然是一个语法糖的改进,也让 Switch 的代码编写变得更加优雅.先看一下在 Java 1 ...
- [Spring cloud 一步步实现广告系统] 12. 广告索引介绍
索引设计介绍 在我们广告系统中,为了我们能更快的拿到我们想要的广告数据,我们需要对广告数据添加类似于数据库index一样的索引结构,分两大类:正向索引和倒排索引. 正向索引 通过唯一键/主键生成与对象 ...
- oracle 删除 queue,C++ stl队列Queue用法介绍:删除,插入等操作代码举例
c++队列queue模板类的定义在头文件中,queue 模板类需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque 类型. C++队列Queue是一种容 ...
最新文章
- 消息服务发送短信,手机接收不到短信解决思路
- 预测过去?DeepMind用AI复原古希腊铭文,登Nature封面
- 2021年春季学期-信号与系统-第一次作业参考答案-第六题
- Modbus协议栈应用实例之四:ModbusTCP服务器应用
- 手把手教你整合最优雅SSM框架
- 安全问题推动企业采用托管和混合IT服务
- 计算机应用基础教材提纲,《计算机应用基础》课程教学大纲
- Pycharm 搭建 Django 项目 (非常详细)
- 如何打开.json文件
- 职场达人教你如何做高效工作汇报!
- Privates下载
- 企业微信 php sdk,thinkphp5.0集成企业微信SDK
- Java企业汽车调度系统
- 文件以及文件夹的管理
- (Modern Family S01E03) Part 1 PhilClaire Phil看球赛 Dylan等Haley Clarie说Phil现在依然和Jay呆在一起很不自在
- exec函数族的基本用法
- Redis学习(三)redis的持久化
- 跨域请求的API接口
- 全球 43 亿个 IPv4 地址正式耗尽!【智能快讯】
- 转发与重定向的区别详解
热门文章
- 进程控制1--fork vfork函数
- mysql 结构体_mysql模块使用结构体生成数据库表,不识别long类型
- python opencv录制视频_如何使用OpenCV和Python录制视频?
- 香肠派对电脑版_《香肠派对》是不是除了《和平精英》最成功的吃鸡手游:靠恶搞火了?...
- 【转】ABP源码分析二十五:EventBus
- 【转】C#中[STAThread]的作用
- 【转】ABP源码分析十八:UI Inputs
- [你必须知道的.NET]第二十五回:认识元数据和IL(中)
- 四年级信息技术认识计算机,四年级信息技术第三课信息工具知多少
- 安装python3.7.0的步骤_python 3.7.0 安装配置方法图文教程