对象指针向量中的元素是什么

What are elements in a vector of object pointers initialized to?

本文关键字:元素 是什么 指针 向量 对象      更新时间:2023-10-16

假设我的对象叫做THING,它有一个指向另一个THING的指针。我希望能够将对象中的 THING 指针指向 THINGS 指针向量中的任何元素,但我不希望它指向某个垃圾值,所以我想知道元素是否初始化为 NULL,这将适用于我如何构建包含这些对象的类和对象指针的向量。

简单地说,有谁知道指针向量中的元素初始化为什么?

编辑:为了澄清,我在.

创建向量时,其中的所有元素都进行值初始化。因此,如果你有一个指针向量,它们都将指向 NULL,除非你更改值。

如果你有一个像Foo vfoo[10];这样的普通老式C样式数组,那么指针不会初始化为nullptr(即不是值初始化),而是默认初始化。只有当你有一个声明std::vector例如 std::vector<Foo> vfoo(10); 时,它的元素将被值初始化,并且你的指针将被nullptr

请参阅std::vector<>的构造函数:

explicit vector (size_type n, const T& value= T(), const Allocator& = Allocator()); 

在这里,const T& value= T()进行值初始化。