对vector对象来说,直接初始化的方式适用于三种情况:初始值已知且数量较少;初始值是另一个vector对象的副本;所有元素的初始值都一样。
然而更常见的情况是:创建一个vector对象时不清楚所需的元素个数,元素的值也经常无法确定。还有些情况,即使元素的初值已知,但其总量较大且各不相同,那么初始化操作也会比较繁琐。
举个例子,如果想创建一个vector对象令其包含0~9共10个元素,使用列表初始化当然可以;
但如果需要包含的元素时是0~99,甚至0~999,一一罗列就非常不方便。
对于此例,更好的处理方法是:
创建一个空的vector,运行时利用vector的成员函数push_back向其添加元素。(push_back负责把一个值当成vector对象的尾元素“压进”vector对象的“尾端”)
vetcor
v2; //空vector对象for(int i=0;i!=100;++i) v2.push_back(i); //依次把整数值放到v2尾端//循环结束后,v2有100个元素,值依次从0到99 同样的,如果只有当程序运行时才知道vector对象中元素的确切个数,也可以使用上述方法创建vector对象进行赋值。
//从标准输入中读取单词,将其作为vector对象的元素存储string word;vector
text; //空vector对象while(cin>>word){ text.push_back(word); //把word添加到text后面}