我对STL的一些看法(三)认识list容器
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容器相关推荐
- STL之序列式容器(三)、vector容器
一.vector的使用.创建及初始化 vector<T> 容器是包含 T 类型元素的序列容器,和 array<T,N> 容器相似,不同的是 vector<T> 容器 ...
- C++STL总结笔记(三)—— 常见算法
文章目录 一.基本概念 二.程序示例 1.遍历 2. 查找 3. 排序.拷贝.替换 4. numeric相关算法 总结 一.基本概念 算法是STL中很重要的一部分,其功能包括比较,查找,排序,交换,遍 ...
- 我对STL的一些看法(一)初步认识STL
后面一段时间我将会给大家分享我自己学到STL以及应用的时候遇到的问题还有他的一些精髓,可能开始的逻辑会有些乱吧,不过后面还会不断的整理和优化,让自己看明白也让更多的读者看的清楚. 最近刚闲下来,先说说 ...
- stl变易算法(三)
本篇接着前面stl变易算法(一)和stl变易算法(二)继续讲述变易算法.这里将介绍完余下的变易算法,主要有:填充fill.n次填充fill_n.随机生成元素generate.随机生成n个元素gener ...
- 我对STL的一些看法(五)初识关联容器
3关联容器 pair类型 这个是一个简单的标准库类型,该类型在utility头文件中定义,我们来看看他主要的操作: pair<T1 ,T2> p1; 创建一个空的pair对象 pa ...
- 我对STL的一些看法(四)认识deque容器
Deque(双向队列) 是一种优化了的.对序列两端元素进行添加和删除操作的基本序列容器.它允许较为快速地随机访问,但它不像vector 把所有的对象保存在一块连续的内存块,而是采用多个连续的存储块,并 ...
- 我对STL的一些看法(二)认识vector容器
先说vector吧. C++ Vector(向量容器) 是一个线性顺序结构.相当于数组,但其大小可以不预先指定,并且自动扩展.它可以像数组一样被操作,由于它的特性我们完全可以将vector 看作动态数 ...
- C++ STL: 基本六大部件概览 及 各个容器使用方式和底层实现概览
文章目录 STL六大部件 容器的使用 Array vector list deque mutiset multimap unordered_multiset/set 使用一个东西,却不明白它的道理,不 ...
- [置顶] 从零开始学C++之STL(二):实现简单容器模板类Vec(vector capacity 增长问题、allocator 内存分配器)...
首先,vector 在VC 2008 中的实现比较复杂,虽然vector 的声明跟VC6.0 是一致的,如下: C++ Code 1 2 template < class _Ty, c ...
最新文章
- 如何优化cocos2d程序的内存使用和程序大小:第一部分
- 模型(Model)– ASP.NET MVC 4 系列
- 清华本硕男,月入5W征婚引群嘲“普通却自信”!本人回应了……
- PHP buffer的机制
- 拖拽升空的Android小火箭
- 【Tensorflow】更新后报错 numpy.core.umath
- HGsoft-downloader
- oracle外部表kup-04023,Oracle外部表学习
- 200个 jquery插件
- 使用 Apache Pig 处理数据7
- webpack 处理字体_不可错过的Webpack核心知识点
- 从理论到工程实践——用户画像入门宝典
- python进行英语文献翻译
- 11月程序员全国程序员平均工资
- echarts多坐标轴图表
- 自动化测试练习项目环境搭建
- 【转载】磁盘空间引起ES集群shard unassigned的处理过程
- mysql常用操作(二)
- recyclerview嵌套recyclerview
- MIT-BIH心律失常数据库目录(译)
热门文章
- 理解GL_TRIANGLE_STRIP等绘制三角形序列的三种方式
- Asterisk权威指南/第一章 一场电话革命
- Hive-Based Registry使用
- 计算机d,计算机词汇d
- python 线程池_老程序员的经验分享:Python 从业十年是种什么体验?
- 【转】Dicom中的Image Orientation/Position的理解
- 【转】.net框架读书笔记---CLR内存管理\垃圾收集(一)
- 【转】刨根究底字符编码之十三——UTF-16编码方式
- Dynamics CRM 2016 安装
- 连接 F5 大 IP 设备