vector对象(以及其它标准容器库对象)的重要属性就是可以在运行时高效地添加元素。因为vector增长的效率高,在元素值已知的情况下,最好是动态地添加元素。
所以虽然可以对给定元素葛素的vector对象预先分配内存,但是更加高效地方法就是先初始化一个空的vector对象,然后再动态地增加元素。
而vector能够在运行时高效地添加元素的原因就是push_back操作:
v.push_back(t) 在v的末尾添加一个值为t的元素
例:
string word;
vector<string> text;
while(cin >> word) {
text.push_back(word);
}
该循环从标准输入读取一系列string对象,逐一追加到vector对象的后面。首先定义一个空的vector对象text,每循环一次就添加一个新元素到vector对象,并将输入读取的word值赋予该元素。
如果说vector就相当于我们平时使用的数组的话,就不得不提到迭代器(iterator),相当于平时使用的指针操作,迭代器是标准库提供的一种访问 vector 元素的方法,标准库为每一种标准容器类型(vector是其中一种)
定义了一种迭代器类型,如vector:
vector<int> ::iterator iter
但是只有少数的容器支持下标操作。所以C++程序更倾向于私用迭代器而不是下标操作访问容器元素。
原文:http://www.cnblogs.com/wangliuyiyi/p/5605392.html