C++顺序容器vector、deque、list

1、容器元素类型

C++中大多数数据类型能够作为容器的元素类型。容器元素类型必须满足一下两个条件:支持赋值和复制操作。

所以没有元素是引用类型的容器,同一时候IO对象和auto_ptr也不能作为容器的元素类型。

2、vector容器的自增长

vector容器中存储的元素在内存中是连续存储的。假如容器中没有空间容纳新元素。此时因为元素必须连续存储以便索引訪问,所以不能在内存中随便找个地方存储这个新的元素,于是vector必须又一次分配空间。用于存放原来的元素和新加入的元素:存放在旧容器中的元素被拷贝到新的容器中,接着插入新的元素,最后撤销旧的存储空间。为了使vector容器实现高速的内存分配,事实上际分配的容量要比当前所需的空间多一些,vector容器预留这些空间,用于存放新的元素。

list容器中加入元素时。仅仅须要创建一个新的元素。然后将该元素连接到已经存在的链表中。不须要又一次分配存储空间,也不用复制不论什么已存在的元素。

3、vector、deque、list三种容器的特点

vector:支持高速随机訪问、可高效的在vector容器尾部加入删除数据

deque:支持高速随机訪问、可高效的在deque容器头部和尾部加入删除数据

list:支持顺序訪问,可是在不论什么位置插入删除元素都非常快

4、vector容器基本操作

  1. #include "stdafx.h"
  2. #include <string>
  3. #include <iostream>
  4. #include <vector>
  5. using namespace std;
  6. int main(int argc, char* argv[])
  7. {
  8. //vector定义并初始化
  9. vector<int> v1;
  10. for (int i=0;i<10;i++)
  11. v1.push_back(i+1);
  12. //使用迭代器遍历vector
  13. vector<int>::iterator iter=v1.begin();
  14. for (;iter!=v1.end();iter++)
  15. {
  16. cout<<*iter<<" ";
  17. }
  18. cout<<endl;
  19. return 0;
  20. }
时间: 2024-08-25 04:57:45

C++顺序容器vector、deque、list的相关文章

第十篇:顺序容器vector,deque,list的选用规则

前言 常见的顺序容器主要有三种 - vector,deque,list.它们实现的功能相差不大,那么实际开发中该如何进行选择呢?本文将为你解答这个问题. 分析 由于这三种容器实现的数据结构原型不同(vector实现原型是顺序表,deque是双端队列,list是链表),因此这三种容器对插入删除以及访问操作的开销是不同的.为了编制出高效的程序,我们应当通过分析容器操作的开销来选择容器. 访问操作对容器选择的影响 1. vector容器的随机访问效率最高: 2. deque容器的随机访问效率也高: 3

STL 笔记(一): 顺序容器 vector、list、deque

STL 容器类 C++ STL 体现了泛型编程的思想,广义上分为: 容器 (Container),迭代器 (Iterator),算法 (Algorithm).容器类可以包含一组相同类型或不同类型的对象,包含相同类型对象时称为同类容器类,包含不同类型对象时,称为异类容器类.容器类库共包含 10 种容器,分为三类: 顺序容器:向量 (vector).双端队列 (deque).列表 (list); 关联容器:集合 (set).多重集合 (multiset).映射 (map)和多重映射 (multima

C++ 顺序容器(vector,list、deque,stack,queue)

顺序容器的种类有:vector,list.deque 顺序容器适配器: stack     //先进后出   栈 queue   //先进先出   队列 priority_queue   //也优先管理级的优先队列 1.头文件 #include <vector> #include <list> #include <deque> //每一种头文件对应一种顺序容器 #include <queue> //队列 优先队列的头文件 #include <stack

c++ 标准库的各种容器(vector,deque,map,set,unordered_map,unordered_set,list)的性能考虑

转自:http://blog.csdn.net/truexf/article/details/17303263 一.vector vector采用一段连续的内存来存储其元素,向vector添加元素的时候,如果容量不足,vector便会重新malloc一段更大的内存,然后把原内存中的数据memcpy到新的内存中,并free原内存块,然后将新元素加入.vector的元素插入性能跟以下几个要素关系重大: 1. 插入的位置 头部插入:将所有元素后移,然后将新元素插入 中间插入:将插入点后面的元素后移,然

2.1顺序容器-vector

vector 1) *   :使用vector必须包含vector头文件.可变长的动态数组,支持随机访问,所有STL算法都可以对vector进行操作. ** :随机根据下标访问某个元素的时间是一个常数,尾部添加大多数情况下也是常数,中间插入和删除速度较慢. 2)成员函数 初始化 vector // 创建一个空的vector.vector c1(c2) // 复制一个vectorvector c(n) // 创建一个vector,含有n个数据,数据均已缺省构造产生vector c(n, elem)

C++ Primer 第四版读书笔记(八)之顺序容器

容器容纳特定类型对象的集合. 标准库vector类型,是一个顺序容器.它将单一类型元素聚集起来称为容器,然后根据位置来存储和访问这些元素,这就是顺序容器.顺序容器的元素排列次序与元素值无关,而是由元素添加到容器里的次序决定. 标准库定义了三种顺序容器类型:vector.list和deque.它们的差别在于访问元素的方式,以及添加或删除元素相关操作的运行代价.标准库还提供了三种容器适配器.实际上,适配器是根据原始的容器类型所提供的操作,通过定义新的操作接口,来适应基础的容器类型. 顺序容器类型 顺

C++拾遗(四)——顺序容器

之前一篇博文(<初窥标准库>)简单了解了一种最常用的顺序容器:vector类型.本文将对该文内容进行进一步的学习和完善,继续讨论标准库提供的顺序容器类型.所谓顺序容器,即将单一类型的元素聚集起来成为容器,并根据位置来存储和访问这些元素.标准库定义了三种顺序容器类型:vector,list和deque(double-ended queue双端队列).同时还提供了三种顺序容器适配器(adaptor):stack,queue,priority_queue. 顺序容器 vector 支持快速随机访存

C++容器总结1——顺序容器和顺序容器适配器

容器 容器是容纳特定类型对象的集合,容器的类型分为顺序容器,容器适配器和关联容器,顺序容器将单一类型元素聚集起来成为容器,然后根据位置来存储和访问这些元素. 顺序容器的元素排列次序与元素值无关,而是由元素添加到容器里的次序决定.标准库定义了三种顺序容器类型:vector,list和deque.他们得差别在于访问元素的方式,以及添加或删除元素相关操作的运行代价. 适配器是根据原始容器类型所提供的操作,通过定义新的操作接口,来适应基础的容器类型.顺序容器适配器包括stack,queue和priori

C++顺序容器知识总结

容器是一种容纳特定类型对象的集合.C++的容器可以分为两类:顺序容器和关联容器.顺序容器的元素排列和元素值大小无关,而是由元素添加到容器中的次序决定的.标准库定义了三种顺序容器的类型:vector.list和deque(双端队列).此外,标准库还提供了三种容器适配器:stack.queue和prioroty_queue类型.适配器是根据原始的容器类型所提供的操作,通过定义新的操作接口,来适应基础的容器类型.见下表 顺序容器 vector 支持快速随机访问 list 支持快速插入/删除 deque