我想填充一个看起来像这样的结构:
unique_ptr<int[]> myArray[10];
每个unique_ptr都是 size 的数组n,在运行时定义但保持不变。
有没有办法初始化声明中的所有内容myArray?或者至少不必明确地循环遍历每个unique_ptrin myArray?
因为目前我发现的最简单的解决方案是添加:
for(auto & it : myArray)
it.reset(new int[n]);
但是感觉有了对 C++ 的所有这些很酷的改进,就会有一种更简单的方法来初始化一个由 10 个恒定大小数组组成的数组n。
我试过类似的东西:
generate_n(std::begin(myArray), 10, []{ return std::unique_ptr<int[]>(new int[n]); });
但是我得到一个关于隐式捕获的错误n。我不知道那是什么意思...