Initialization of Vector

本文探讨了在C++中初始化容器元素的几种方式。当未指定元素初始化器时,库会为容器中的每个元素创建一个值初始化的元素。对于内置类型如int,元素将被初始化为0;对于类类型如string,使用默认构造函数进行初始化;对于没有定义任何构造函数的类类型,将通过值初始化每个成员。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

     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.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值