如何声明一个数组,然后在另一行中分配

时间:2017-07-20 12:14:27

标签: c++ arrays

class c{};

c *ar[2];

ar = {new c, new c}; //error

“数组类型不可分配” 如何在声明之后分配它,我想这样做因为类正在使用该变量所以我只想声明它,创建一个类然后分配值,我不能在类之前分配因为它不能制作new c而不先取消课程。

2 个答案:

答案 0 :(得分:1)

使用标准库算法generate

#include <algorithm>
#include <iterator>

class c{};
c* ar[2];
std::generate(std::begin(ar), std::end(ar), [] { return new c; });

答案 1 :(得分:0)

使用循环:

for(auto i = std::begin(ar);i!=std::end(ar);++i)
    *i = new c;

这将适用于(几乎)所有容器类,而不仅仅是原始数组。