有人可以帮我摆脱这个 memset 吗?
Posted
技术标签:
【中文标题】有人可以帮我摆脱这个 memset 吗?【英文标题】:can anybody help me get rid of this memset? 【发布时间】: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 这看起来像一棵树。
【参考方案1】:
我只是想要一个简单的循环替换
for(size_t i = 0; i < level+1; i++)
front[i]=NULL;
我可以改用上面的代码
【讨论】:
以上是关于有人可以帮我摆脱这个 memset 吗?的主要内容,如果未能解决你的问题,请参考以下文章