c++ 对std::unique_ptr数组的赋值

y0u0uwnf  于 2023-06-25  发布在  其他
关注(0)|答案(2)|浏览(143)
struct MyStruct
{
    int x = 0;
}

std::array<std::unique_ptr<MyStruct>, 10> Arr;

// Arr[0] = ?

将对象赋给这样的数组的语法是什么?My reference

vpfxa7rd

vpfxa7rd1#

费翔回答:

Arr[0].reset(new MyStruct);

雷米Lebeau的回答:

Arr[0] = std::make_unique<MyStruct>(); // Since C++14
djmepvbi

djmepvbi2#

或者

std::array<std::unique_ptr<MyStruct>, 10> Arr {
  std::make_unique<MyStruct>(),
  std::make_unique<MyStruct>(),
  std::make_unique<MyStruct>(),
  std::make_unique<MyStruct>(),
  std::make_unique<MyStruct>(),
  std::make_unique<MyStruct>(),
  std::make_unique<MyStruct>(),
  std::make_unique<MyStruct>(),
  std::make_unique<MyStruct>(),
  std::make_unique<MyStruct>()
};

以避免转移任务。

相关问题