C++ list 初识
来源:互联网 发布:企业数据标准化 编辑:程序博客网 时间:2024/06/05 07:50
在使用list必须包括头文件#include <list>
list是双向循环链表,每一个元素都知道前面一个元素和后面一个元素,既可以向前又向后链接它的元素。
与vector不一样的地方:1. list不支持对元素的任意存取;2.list的迭代器不会存在失效的情况,他不像vector会保留备份空间,在超过容量额度时重新全部分配内存,导致迭代器失效;list没有备份空间的概念,出入一个元素就申请一个元素的空间,所以它的迭代器不会失效。
因此,list将元素按顺序储存在链表中,与vector相比,它允许快速的插入和删除,但是随机访问却比较慢。list每次增加一个元素,不存在重新申请内存的情况,它的成本是恒定的。而vector每当增加关键元素的时候,都需要重新申请新的更大的内存空间,会调用元素的自身的复制构造函数,存在构造成本。在销毁旧内存的时候,会调用析构函数,存在析构成本。所以在存储复杂类型和大量元素的情况下,list比vector更有优势!
0 0
- 初识C#
- 【C#】初识
- 初识 C#
- 【C#】初识
- python list 系列初识
- C++ list 初识
- Java集合.List.初识
- 初识 Vector List
- STL初识list,vector容器
- [C学习]指针初识
- C#----初识正则表达式
- Pro*C初识
- 初识c指针
- Object C 初识
- 1.1--初识C语言
- objective-C 初识
- 初识协程 "C"
- 初识Object-C对象
- java 模拟登陆正方教务系统
- Android APP字体大小,不随系统的字体大小变化而变化的方法
- 用PHP实现n的阶乘--高精度算法
- 51nod1289 大鱼吃小鱼
- 给出一个有效的算法来确定在整数A1<A2<A3<...<AN的数组中是否存在整数i使得Ai=i
- C++ list 初识
- 更改数据库表名
- 1079. Total Sales of Supply Chain (25)
- oracle锁的理解
- Android学习碎片(三)——Handler、Message、Runnable之间的联系①
- Java+jSSC 串口从读取数据
- 一个iOS开发者的修真之路
- 匈牙利命名法收藏
- 把书《CUDA By Example an Introduction to General Purpose GPU Programming》读薄