std::unique_ptr
支持数组,例如:
std::unique_ptr<int[]> p(new int[10]);
但需要吗?使用 std::vector
或 std::array
可能更方便。
你觉得那个结构有什么用吗?
原文由 fen 发布,翻译遵循 CC BY-SA 4.0 许可协议
std::unique_ptr
支持数组,例如:
std::unique_ptr<int[]> p(new int[10]);
但需要吗?使用 std::vector
或 std::array
可能更方便。
你觉得那个结构有什么用吗?
原文由 fen 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答3.3k 阅读
有些人没有使用
std::vector
的奢侈,即使使用分配器也是如此。有些人需要一个动态大小的数组,所以std::array
出来了。有些人从已知返回数组的其他代码中获取数组;并且该代码不会被重写以返回vector
或其他东西。通过允许
unique_ptr<T[]>
,您可以满足这些需求。简而言之,您在 需要 时使用
unique_ptr<T[]>
。当替代方案根本不适合您时。这是不得已而为之的工具。