1. 向量的用法类似于数组,但向量的长度不固定。如果需要更大的容量来存储更多的元素,它的容量就会自动扩充。向量定义在vector库中给出,定义放在std命名空间,所以,要在一个文件中使用向量,须包含以下语句:
<span style="font-size:14px;">#include <vector>
using namespace std;</span></span>
2. 类似于数组,向量也有一个基类型,而且同样存储着其基类型的一系列值。一个给定Base_Type<基类型>的向量类型要写成vector<Base_Type>.下面的两个示范性的向量声明:
<span style="font-size:14px;">ector<int> v;//默认构造函数生成一个向量空间
vector<AClass> recorder(20);// 向量构造函数使用AClass类的默认构造函数来初始化20个元素</span></span>
3. 在向量的一个索引位置首次添加一个元素时,通常使用成员函数push_back。在向量中添加元素时,要一次添加,首先添加的位置是0,然后添加的位置是1,位置2,以此类推。成员函数push_back()在下一个可用的位置加一个元素:
<span style="font-size:14px;">vector<double> sample;
sample.push_back(0.0);
sample.push_back(1.1);
sample.push_back(2.2);</span></span>
4. 向量中元素的个数成为向量的常数长度(size).成员函数size可用于判断一个向量中有多少个元素。
<span style="font-size:14px;">sample.size();//返回2</span></span>
size函数返回的是unsigned int类型的值,而不是int。在需要int的地方,会自动执行转换(编译器会提示警告)。
5.陷阱:使用方括号v[i]时超出长度
如果v是一个向量,而i是大于或者等于v.size(),那么元素v[i]是不存在的,必须使用push_back()从位置i处添加更多的元素。
6. 为向量使用赋值操作符时,会逐个元素地为赋值操作符左侧的元素赋值。
7. 向量的长度与容量(capacity)
向量的长度是向量中元素的个数,容量则是当前实际分配了内存元素的个数。对于向量v来说,可以分别用成员函数v.size()和v.capacity()来了解它的长度和容量。
容量大于或等于长度。
通过使用成员函数resize()和reserve(),可在不需要部分元素或者部分容量的前提下,主动收缩向量的长度和容量。