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

原创 2015年07月08日 14:49:24

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.   
  7. int main(int argc, char* argv[])  
  8. {     
  9.     //vector定义并初始化  
  10.     vector<int> v1;  
  11.     for (int i=0;i<10;i++)  
  12.         v1.push_back(i+1);  
  13.   
  14.     //使用迭代器遍历vector  
  15.     vector<int>::iterator iter=v1.begin();  
  16.     for (;iter!=v1.end();iter++)  
  17.     {  
  18.         cout<<*iter<<" ";  
  19.     }  
  20.     cout<<endl;  
  21.     return 0;  
  22. }  
版权声明:本文为博主http://www.feixueteam.net原创文章,未经博主允许不得转载。

C++三种容器:list、vector和deque的区别

转载自:http://blog.csdn.net/gogokongyin/article/details/51178378           在写C++程序的时候会发现STL是一个不错的东西,减少...

C++三种容器:list、vector和deque的区别

在写C++程序的时候会发现STL是一个不错的东西,减少了代码量,使代码的复用率大大提高,减轻了程序猿的负担。还有一个就是容器,你会发现要是自己写一个链表、队列,或者是数组的时候,既要花时间还要操心怎么...
  • gogoky
  • gogoky
  • 2016年05月06日 17:35
  • 8747

c++学习笔记之vector容器与list容器

vector的几个跟容量有关的函数: size 元素数目,类似于会议室中人的数目 resize 调整元素数目,类似于调整人数 capacity 可容纳数目,类似会议室中的座位数量 reserv...

多重继承引发的二义性问题及解决方法分析

 首先了解: 1.类的继承:派生类拥有其基类拥有的所有数据成员与成员函数,但访问属性不同。 2.类的派生:派生类可以加入新的基类不拥有的数据与函数。   多重继承:一个类派生出多个类,多...

C/C++程序设计05(泛型编程、容器、STL)

第九章 STL模板与容器 泛型编程让你编写完全一般化并可重复使用的算法,其效率与针对某特定数据类型而设计的算法相同。泛型即是指具有在多种数据类型上皆可操作的含意,与模板有些相似。 标准库模板STL...

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

1、容器元素类型     C++中大多数数据类型可以作为容器的元素类型。容器元素类型必须满足一下两个条件:支持赋值和复制操作。     所以没有元素是引用类型的容器,同时IO对象和auto_ptr...

c++标准库顺序容器vector,deque,list

顺序容器 Vector deque List 内存形式 类似加强版的队列 分配一块连续的内存,元素被顺序存储。当数值内存不够时,vector...

Effective C++ (8) 顺序容器vector,list,deque

为了定义一个容器类型的对象,必须先包含相关的头文件,即下列头文件之一: #include #include #include   所有的容器都是类模板要定义某种...

C++语法基础--顺序容器(一)--vector,list,deque

1.标准库定义的三种容器类型:vector,list,deque(double-ended queue)             2.容器构造函数                       3....

c++顺序容器vector,List,deque的区别

三种容器均支持resize()操作,重新划定容器大小,且此函数有重载。  vector  vector和built-in数组类似,是一个在堆上建立的一维数组,它拥有一段连续的内存空间,并且起始地址...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++顺序容器vector、deque、list
举报原因:
原因补充:

(最多只允许输入30个字)