对象指针向量中的元素是什么
What are elements in a vector of object pointers initialized to?
假设我的对象叫做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()
进行值初始化。
相关文章:
- 从字符数组的元素中减去'a'是什么意思
- C++ 未初始化的本地(非全局)int 数组中的元素类型到底是什么?
- 在向量中查找大于 0(或通常为 k)的最小元素的最佳方法是什么?
- 通过作为指向 C++ 函数的指针传递来访问 std::array 元素的正确方法是什么?
- 找到对称矩阵的最大元素的最有效算法是什么
- 返回向量元素的 l 值的正确方法是什么?
- 按升序打印矢量的所有元素直到它为空而没有重复项的最有效方法是什么?
- 从长(且合理)稀疏向量中选择随机元素的最有效方法是什么?
- " ans += (a[i] - ans * r > 0); "是什么意思,其中 ans,r 是整数,a[i] 是数组元素?
- 在查找子集中元素和元素数量之间的二进制比较背后的逻辑是什么?
- 我如何找出3D容器的元素是什么类型
- 的每个元素是什么意思?
- 在 c 和 c++ 中,二维数组的元素是什么类型?
- 使用 CDT 从头文件中获取属性定义的节点元素是什么
- 在 typedef 中有三个元素是什么意思 C++.
- 数组在方括号中增加元素是什么意思
- 如何知道您输入到std::array中的最后一个元素是什么?
- 我读了map.erase(map.end());删除地图的最后一个元素。但是最后一个元素是什么?它是否基于元素的插入顺序?
- 向量中的第一个元素是什么
- 对象指针向量中的元素是什么