【发布时间】:2019-04-08 22:09:48
【问题描述】:
这里是 Node 类,最后一行已经使用了 memset,所以我不想 无论如何都要使用它,有人可以帮助我吗?
class Node {
public:
int key;
Node **front;
Node(int, int);
};
Node::Node(int key, int level)
{
this->key = key;
front = new Node*[level+1];
// here is memset i wanna remove *******
memset(front, 0, sizeof(Node*)*(level+1));
};
【问题讨论】:
-
将
front = new Node*[level+1];更改为front = new Node*[level+1]{}; -
或者使用
std::vector而不是new[](无论如何你都应该这样做!),然后你可以在(重新)调整矢量大小时为新元素提供默认值 -
@RemyLebeau 他是将 Node 的向量存储在 Node 内,还是将 Node* 的向量存储在 Node 内?这看起来像是链表实现的一部分。
-
或
std::fill(front, front+level+1, nullptr); -
@Tzalumen 这看起来像一棵树。