值初始化:如果没有指定元素的初始化式,那么标准库将自行提供一个元素初始值进行值初始化,这个由库生成的初始值将用来初始化容器中的每个元素,具体值取决于存储在vector中元素的数据类型。
1.如果vector保存内置类型(如int类型)的元素,那么标准库将用0值创建元素初始化式。 vector<int> fevc(10);
2. 含有构造函数的类类型(如string)的元素,标准库将用该类型的默认构造函数创建元素初始化式。 vector<string> svec(10);
3.一些有自定义构造函数但没有默认构造函数的类,在初始化这种类型的vector对象时,程序员就不能仅仅提供元素个数,还需要提供元素初始值。
4.元素类型可能是没有定义任何构造函数的类类型。标准库仍产生一个带初始值的对象,这个对象的每个成员进行了值初始化。
vector对象的操作:
v.empty() 如果v为空,则返回true,否则false
v.size() 返回v中元素的个数 //返回相应vector类定义的size_type的值
v.push_back(t) 在v的末尾增加一个值为t的元素
v[n] 返回v中位置为n的元素
v1 = v2 把v1的元素替换为v2中元素的副本。
v1 == v2 如果v1与v2相等,则返回true
使用size_type类型时,必须指出该类型是在哪里定义的。vector类型总是包括vector的元素类型:
vector<int> :: size_type // ok
vector::size_type //error