C++ List(双向链表)

是一个线性链表结构,它的数据由若干个节点构成,每一个节点都包括一个信息块(即实际存储的数据)、一个前驱指针和一个后驱指针。它无需分配指定的内存大小且可以任意伸缩,这是因为它存储在非连续的内存空间中,并且由指针将有序的元素链接起来。由于其结构的原因,list 随机检索的性能非常的不好,因为它不像vector 那样直接找到元素的地址,而是要从头一个一个的顺序查找,这样目标元素越靠后,它的检索时间就越长。检索时间与目标元素的位置成正比。虽然随机检索的速度不够快,但是它可以迅速地在任何节点进行插入和删除操作。因为list 的每个节点保存着它在链表中的位置,插入或删除一个元素仅对最多三个元素有所影响,不像vector 会对操作点之后的所有元素的存储地址都有所影响,这一点是vector 不可比拟的。

list 的特点:

(1) 不使用连续的内存空间这样可以随意地进行动态操作;

(2) 可以在内部任何位置快速地插入或删除,当然也可以在两端进行push和pop 。

(3) 不能进行内部的随机访问,即不支持[ ] 操作符和vector.at() ;

Lists将元素按顺序储存在链表中,与向量(vectors)相比,它允许快速的插入和删除,但是随机访问却比较慢.

4.clear() 删除所有元素

5.empty() 如果list是空的则返回true

6.end() 返回末尾的迭代器

7.erase() 删除一个元素

语法:

iterator erase( iterator l

我对STL的一些看法(三)认识list容器相关推荐

  1. STL之序列式容器(三)、vector容器

    一.vector的使用.创建及初始化 vector<T> 容器是包含 T 类型元素的序列容器,和 array<T,N> 容器相似,不同的是 vector<T> 容器 ...

  2. C++STL总结笔记(三)—— 常见算法

    文章目录 一.基本概念 二.程序示例 1.遍历 2. 查找 3. 排序.拷贝.替换 4. numeric相关算法 总结 一.基本概念 算法是STL中很重要的一部分,其功能包括比较,查找,排序,交换,遍 ...

  3. 我对STL的一些看法(一)初步认识STL

    后面一段时间我将会给大家分享我自己学到STL以及应用的时候遇到的问题还有他的一些精髓,可能开始的逻辑会有些乱吧,不过后面还会不断的整理和优化,让自己看明白也让更多的读者看的清楚. 最近刚闲下来,先说说 ...

  4. stl变易算法(三)

    本篇接着前面stl变易算法(一)和stl变易算法(二)继续讲述变易算法.这里将介绍完余下的变易算法,主要有:填充fill.n次填充fill_n.随机生成元素generate.随机生成n个元素gener ...

  5. 我对STL的一些看法(五)初识关联容器

    3关联容器 pair类型 这个是一个简单的标准库类型,该类型在utility头文件中定义,我们来看看他主要的操作: pair<T1 ,T2> p1;     创建一个空的pair对象 pa ...

  6. 我对STL的一些看法(四)认识deque容器

    Deque(双向队列) 是一种优化了的.对序列两端元素进行添加和删除操作的基本序列容器.它允许较为快速地随机访问,但它不像vector 把所有的对象保存在一块连续的内存块,而是采用多个连续的存储块,并 ...

  7. 我对STL的一些看法(二)认识vector容器

    先说vector吧. C++ Vector(向量容器) 是一个线性顺序结构.相当于数组,但其大小可以不预先指定,并且自动扩展.它可以像数组一样被操作,由于它的特性我们完全可以将vector 看作动态数 ...

  8. C++ STL: 基本六大部件概览 及 各个容器使用方式和底层实现概览

    文章目录 STL六大部件 容器的使用 Array vector list deque mutiset multimap unordered_multiset/set 使用一个东西,却不明白它的道理,不 ...

  9. [置顶] 从零开始学C++之STL(二):实现简单容器模板类Vec(vector capacity 增长问题、allocator 内存分配器)...

    首先,vector 在VC 2008 中的实现比较复杂,虽然vector 的声明跟VC6.0 是一致的,如下: C++ Code  1 2   template <  class _Ty,  c ...

最新文章

  1. 如何优化cocos2d程序的内存使用和程序大小:第一部分
  2. 模型(Model)– ASP.NET MVC 4 系列
  3. 清华本硕男,月入5W征婚引群嘲“普通却自信”!本人回应了……
  4. PHP buffer的机制
  5. 拖拽升空的Android小火箭
  6. 【Tensorflow】更新后报错 numpy.core.umath
  7. HGsoft-downloader
  8. oracle外部表kup-04023,Oracle外部表学习
  9. 200个 jquery插件
  10. 使用 Apache Pig 处理数据7
  11. webpack 处理字体_不可错过的Webpack核心知识点
  12. 从理论到工程实践——用户画像入门宝典
  13. python进行英语文献翻译
  14. 11月程序员全国程序员平均工资
  15. echarts多坐标轴图表
  16. 自动化测试练习项目环境搭建
  17. 【转载】磁盘空间引起ES集群shard unassigned的处理过程
  18. mysql常用操作(二)
  19. recyclerview嵌套recyclerview
  20. MIT-BIH心律失常数据库目录(译)

热门文章

  1. 理解GL_TRIANGLE_STRIP等绘制三角形序列的三种方式
  2. Asterisk权威指南/第一章 一场电话革命
  3. Hive-Based Registry使用
  4. 计算机d,计算机词汇d
  5. python 线程池_老程序员的经验分享:Python 从业十年是种什么体验?
  6. 【转】Dicom中的Image Orientation/Position的理解
  7. 【转】.net框架读书笔记---CLR内存管理\垃圾收集(一)
  8. 【转】刨根究底字符编码之十三——UTF-16编码方式
  9. Dynamics CRM 2016 安装
  10. 连接 F5 大 IP 设备