【发布时间】:2021-12-03 10:37:55
【问题描述】:
通常,我们可以使用大括号初始化动态分配来创建数组
int* arr = new int[5]{1,1,2,4,5};
但这是否可以使用智能指针,特别是使用 std::make_unique?我尝试了以下方法:
unique_ptr<int[]> arr(5) {1,1,2,4,5};
unique_ptr<int[]> arr = make_unique<int[]>(5){1,1,2,4,5};
unique_ptr<int[]> arr = make_unique<int[]>({1,1,2,4,5});
但无济于事,而且我认为这甚至可能无法使用智能指针。任何有关如何使用 大括号初始化 智能指针的建议将不胜感激。
是的,我知道std::vector,但希望有其他方法。
【问题讨论】:
标签: c++ c++11 initialization smart-pointers unique-ptr