天天看点

vector的几种初始化和遍历

随着C++11标准的出现,vector出现了新的初始化和遍历用法,但是vs2010和较高版本并没有能完全支持C++11标准,所以我就将它的所有的用法归纳了一下。

vector的初始化

vector基本初始化如下:

vector< T >v1 v1是一个空的vector

vector< T >v2(v1) v2包含v1所有元素,等价于vector v2=v1;

vector< T >v3(n,val) v3包含了n个重复元素,每个元素是val

在C++11标准中出现了下面两种新的初始化方式

vector< T > v4{a,b,c……} v4中每个元素被赋了相应的值

vector< T > v4={a,b,c……..} 这个和上面初始化形式一样,和数组初始化形式相似

由于目前完全支持C++11标准的编译器不多,当要对vector赋予不同初值的时候,我们就需要借助数组的形式来给vector赋予初值。 (也就是以下的方式是c++ 11之前经常采用的方式)

举个例子:

1.当数组元素数量有限时

2.当数组元素数量很多时

或者运用下面形式

这个形式在VS2010中可以使用,它采用C++11的标准。

如果是字符串数组,只需要将int换成string即可,再加上相应赋值

例如:

好了vector的初始化完成了,接着是vector的遍历了;

vector遍历

vector的遍历一般使用迭代器

或者采用

还可以for_each来遍历vector形式,如下:

它还可以像数组一样去遍历