使用 VS 2012 在构造函数中的树节点中初始化数组
Initializing array in a node of a tree in constructor using VS 2012
我正在C++中构建一棵通用树。我简化了我的代码,只是为了了解我在做什么。本质上,我想在每个树节点中存储一个 char 数组。我知道数组的大小以及数组的大小和内容对于每个节点都是相同的。我的印象是VS 2012符合C++11标准。尝试初始化我的数组时,此方法不起作用。
class Tree{
public:
Tree();
private:
struct Node{
Node* lchild;
Node* mchild;
Node* rchild;
Node* parent;
std::array<char, 5> arr { 'a', 'b', 'c', 'd', 'e'};
};
Node* root;
};
这也不是
class Tree{
public:
Tree();
private:
struct Node{
Node* lchild;
Node* mchild;
Node* rchild;
Node* parent;
std::array<char, 5> arr;
};
Node* root;
};
Tree::Tree(){
root = new Node;
root->parent = nullptr;
root->lchild = nullptr;
root->mchild = nullptr;
root->rchild = nullptr;
root->arr = {'a', 'b', 'c', 'd', 'e'};
}
假设我希望我的数组有 30 个元素长。有没有比在我的构造函数中手动初始化更好的使用 VS 2012 初始化它的方法,即
root->arr[0] = 'a', root->arr[1] = 'b', root->arr[2] = 'c', root->arr[3] = 'd'.......
如果没有潜在的解决方法,或者我是否为每个节点做了 30 次?
如果您
已经知道值,则在 Node 构造函数中初始化arr
,例如
Node::Node():
arr({/*values...*/}){
//rest of c.tor body.
}
最好对其余成员进行 null 初始化Node
。
相关文章:
- Trie 树初始化
- 哈希映射使用 nullptr c++ 初始化节点的动态数组
- 无法使用类型为"结构节点 *"的左值初始化类型为"结构节点 *"的参数
- 正在初始化:无法从'_Ty*'转换为 List<int,std::分配器<节点<T>>>:节点*
- 跨继承树初始化元组
- 嵌套的C 常数数据结构,没有初始化列表或明确命名所有节点-VC 2012过早破坏了内部元素
- 从数组C++初始化平衡二进制搜索树
- c ++作业 - 在链接列表代码中初始化节点的正确方法
- 使用公共类函数初始化节点类型<Type>指针C++
- 使用一些空指针初始化节点
- 通过C++应用程序初始化节点.js环境
- C++ 使用 std::p air 模板专用化定义树节点数据结构
- 初始化哈希映射C++构造函数中节点的值
- 初始化二进制搜索树中的字符串数组
- 如何初始化节点为矩阵的链表
- 二叉搜索树可能未初始化的父指针
- 使用 VS 2012 在构造函数中的树节点中初始化数组
- 如何在构造函数中初始化树节点中的数组
- 如何初始化嵌套结构的unique_ptr(例如二叉树)
- 从.txt文件初始化列表中的节点