C++标准库vector类型的使用和操作总结

  vector是一种类型对象的集合,它是一种顺序容器,容器中的所有对象必须都是同一种类型。想了解顺序容器的更多内容:C++顺序容器知识总结。vector的对象是可以动态生长的,这说明它在初始化时可以不用指定大小,而是再使用时根据元素所需的空间动态增长。C++中还有一种常见的类型string,它和vector有很多相似之处,具体可以看《C++标准库string类型的使用和操作总结》这篇博文。下面简单介绍一下vector容器的使用和操作。

一.声明和初始化

  使用vector之前必须在程序前的库包含中包含相应的头文件,如下:

#include<vector>
using std::vector;

  vector定义了几种构造函数,所以它提供了几种初始化的方式,如下:

vector<T>    v1;                vevtor保存类型为T的对象。默认构造函数v1为空。
vector<T>    v2(v1);            v2是v1的一个副本,v1和v2的元素类型必须相同
vector<T>    v3(n,i);           v3包含n个值为i的元素
vector<T>    v4(n);             v4包含初始化的元素的n个副本,默认元素值为0

二.常用操作

  vector的很多操作都类似于string对象的操作,下面仅仅列出一些常用的操作。

v.empty();                如果v为空,则返回true,否则返回false
v.size();                 返回v中元素的个数
v.push_back(t);           在v的末尾添加一个值为t的元素
v[n];                     返回v中位置为n的元素,从0开始计数
v1=v2;                    把v的内容替换为v2的一个副本
v1==v2;                   比较v1和v2的内容,相等则返回true,否则返回false
!=,<,<=,>和>=           保持这些操作符惯有的含义

  值得注意的是在进行下标操作时,必须是已经存在的元素才能进行下标索引,否则通过下标索引赋值,不会添加任何元素,如:

vertor<int >    ivec;
for(vector<int >::size_type i=0;i!=10;++i)
    ivec[i]=i;
//上面则条语句不会像容器添加任何元素,因为ivec是空的对象,所以应该改成下面的语句
vertor<int >    ivec;
for(vector<int >::size_type i=0;i!=10;++i)
    ivec.push_back(i);

 

参考文献

C++ PRIMER》 中文版

posted @ 2018-03-14 23:01  !Vincent  阅读(7030)  评论(0编辑  收藏