vector类是随标准 C++引入的标准库STL的一个类,它为C++内置数组提供了一种替代方式,为了使用vector 我们必须包含相关的头文件 :
1 | #include <vector> |
使用vector有两种不同的形式,即所谓的数组习惯和STL习惯。
一、数组习惯用法
1. 定义一个已知长度的 vector :
1 | vector<int> v(10); //类似数组定义int a[10]; |
访问时,直接使用[]索引号或者iterator来访问; 使用
if(v.empty())
判断是否是空; v.size()
判断元素个数。vector的元素被初始化为与其类型相关的缺省值:算术和指针类型的缺省值是 0,对于class 类型,缺省值可通过调用这类的缺省构造函数获得,我们还可以为每个元素提供一个显式的初始值来完成初始化,例如
1 | vector<int> v(10, 1); |
或者,vector可以被另一个vector初始化,或被赋给另一个vector。例如
1 | vector<string> v; |
二、STL习惯用法
在STL9中对vector的习惯用法完全不同。我们不是定义一个已知大小的vector,因为vector的优势之一就是大小可以变化,所以没有必要一来就将其Size定死。比如定义一个空vector:
1 | vector< string > sheet; |
然后,我们需要做的不是赋值,而是插入元素。例如push_back()操作,就是在vector的后面插入一个元素. 下面的while循环从标准输入std::cin读入一个字符串序列,并每次将一个字符串插入到 vector 中
1 | string word; |
虽然我们仍可以用下标操作符来迭代访问元素, 但是更典型的做法是使用vector操作集中的begin()和 end()所返回的迭代器iterator,在之前访问那一小句话中提到过,比如:
1 | cout << "words read are: \n"; |
For more method, please visit:
http://www.cplusplus.com/reference/vector/vector/