如何在构造函数中将指针数组全部设置为nullptrs?

use*_*026 1 c++ arrays constructor pointers initialization

class TrieNode {
public:
    TrieNode() : next{new TrieNode *[26]} {}
    TrieNode **next;
    string word;
};
Run Code Online (Sandbox Code Playgroud)

我必须为此应用程序使用原始指针,我想知道如何nullptr在构造函数中设置所有 26 个指针?我是否必须循环next并单独设置每个人,还是有另一种更快的方法来做到这一点?

son*_*yao 6

您可以执行值初始化

  1. 如果 T 是数组类型,则数组的每个元素都进行了值初始化;
  2. 否则,对象是零初始化的

零初始化的效果是:

  • 如果 T 是标量类型,则对象的初始值是显式转换为 T 的整数常量零。
class TrieNode {
public:
    TrieNode() : next{new TrieNode *[26]()} {}
//                                      ^^  or use {} since C++11
    TrieNode **next;
    string word;
};
Run Code Online (Sandbox Code Playgroud)

因此,数组的所有元素都将被初始化为空指针。