初始化为对象指针向量中的元素是什么?

时间:2014-11-29 19:39:42

标签: c++ pointers vector

让我们说我的对象叫做THING,它有一个指向另一个THING的指针。我希望能够将我的对象中的THING指针指向我指向THINGS的向量中的任何元素,但我不希望它指向一些垃圾值,所以我想知道这些元素是否存在被初始化为NULL,这将与我如何构建包含这些对象和对象指针向量的类有关。

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

编辑:为了澄清,我正在使用标准的矢量类。

2 个答案:

答案 0 :(得分:1)

创建矢量时,其中的所有元素都是值初始化的。因此,如果你有一个指针向量,除非你改变了值,否则它们都将指向NULL。

答案 1 :(得分:0)

如果您有一个普通的旧式C风格数组,如Foo vfoo[10];,则指针不会初始化为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()执行值初始化。