std::unique_ptr支持数组,例如:
std::unique_ptr
std::unique_ptr<int[]> p(new int[10]);
但需要吗?std::vector可能使用or更方便std::array。
std::vector
std::array
你觉得那个结构有什么用吗?
有些人甚至没有使用std::vector分配器的奢侈。有些人需要一个动态大小的数组,所以std::array就不行了。有些人从已知返回数组的其他代码中获取数组;并且该代码不会被重写以返回 avector或其他东西。
vector
通过允许unique_ptr<T[]>,您可以满足这些需求。
unique_ptr<T[]>
简而言之,您unique_ptr<T[]>在 需要 时使用。当替代方案根本不适合您时。这是不得已而为之的工具。