Initialization of Vector

来源:互联网 发布:海兰信数据科技怎么样 编辑:程序博客网 时间:2024/05/18 15:08

 

     When we do not specify an element initializer, then the library creates a value initialized element initializer for us. This library-generated value is used to initialize each element in the container. The value of the element initializer depends on the type of the elements stored in the vector.

(1)、If the vector holds elements of a built-in type, such as int, then the library creates an element initializer with a value of 0:

     vector<string> fvec(10); // 10 elements, each initialized to 0

 

(2)、If the vector holds elements of a class type, such as string, that defines its own constructors, then the library uses the value type's default constructor to create the element initializer:

     vector<string> svec(10); // 10 elements, each an empty string


As we'll see in Chapter 12, some classes that define their own constructors do not define a default constructor. We cannot initialize a vector of such a type by specifying only a size; we must also specify an initial element value.

 

There is a third possibility: The element type might be of a class type that does not define any constructors. In this case, the library still creates a value-initialized object. It does so by value-initializing each member of that object.