1.向vector添加元素
push_back()操作接受一个元素值,将它作为一个新的元素添加到到vector对象的后面。
<span style="font-size:14px;">string word;
vector<string> text;
while(cin >> word){<span style="white-space: pre;"> </span>//每循环一次就添加一个新元素到vector对象,并将输入读取的word值赋予该元素。
text.push_back(word);<span style="white-space: pre;"> </span>//当循环结束时,text就包含了所有读入的元素<span style="white-space: pre;"> </span>
}</span>
2.下标操作:vector中的对象是没有命名的,可以按vector中对象的位置来访问它们。
通常使用下标操作符来获取元素。size_type类型作为vector下标的类型。
C++程序员习惯于优先选用!=而不是<来编写循环的判断条件。
<span style="font-size:18px;">for(vector<int>::size_type ix= 0; ix != ivec.size(); ++ix)
ivec[ix] = 0;</span>
上例没有在for循环之前就调用size成员函数并保存其返回值,而在for语句头中调用size成员函数。
在C++中,有些数据结构(如vector)可以动态增长,上例中循环仅需要读取元素,而不需要增加新元素。对于循环可以容易地增加新元素,入股哦确实增加了新元素,那么测试已保存的size值作为循环的结束条件会有问题。我们在每次循环中测试size的当前值,而不是在进入循环前,存储size的副本。
C++中有些函数可以声明为内联inline函数,编译器遇到内联函数就i会直接扩展相应代码,而不是进行实际的函数调用。像size这种小库函数基本都被定义为内联函数,所以每次循环过程中调用它的运行时代价是比较小的。