gpt4 book ai didi

c++ - 使用 boost 侵入式指针初始化数组的最 STYLish 方式

转载 作者:太空宇宙 更新时间:2023-11-04 13:57:34 25 4
gpt4 key购买 nike

我有这个:

struct Node;
typedef boost::intrusive_ptr<Node> NodeSPtr;

...

boost::scoped_array<NodeSPtr> nodes(new NodeSPtr[size]);

...

// "pollute" operations ...

...

// reset all the items in the array
for (size_t i = 0; i < size; ++i)
nodes[i].reset();

什么是初始化数组的最干净的STLish 方法。请注意,该代码对性能敏感,不能使用 vector 。

最佳答案

根据 docsintrusive_ptr 的默认构造函数有一个后置条件 get() == 0 .因此,要默认构造数组值,只需在 new 之后添加一对大括号(统一初始化),如下所示:

boost::scoped_array<NodeSPtr> nodes(new NodeSPtr[size]{});

如果不能使用统一的初始化语法,也可以使用括号。

关于c++ - 使用 boost 侵入式指针初始化数组的最 STYLish 方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20775466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com