c++03 初始化具有多个参数的对象数组

c++03 Initializing a array of objects with multiple parameters

这可能是一个简单的问题,但我正在尝试使用参数化构造函数初始化对象数组。例如:

class A{
public:
    int b,c,d;
    A (int i, int j);
};

void A::A(int i, int j){
    d = rand()
    b = 2*i;
    c = 3*j;
}

void main(){
    A a[50]; /*Initialize the 50 objects using the constructor*/
}

我已经尝试过 this link 中提到的向量初始化,但是,由于有 2 个参数,这不起作用。

此外,如本link所述,手动输入50个初始化值是不可能的,而且很繁琐。

有没有更简单的方法。此外,所有对象的 i,j 值都相同(可通过 main() 获得)但 d 应该是随机值并且与每个对象不同。

为什么不为双参数构造函数提供默认参数?

A (int i = 0, int j = 0);

然后它将代替默认构造函数,A a[50];将自动使用它50次。

您可以使用std::generate

示例:

A generator(){ return A(1,2); }

std::generate( a, a + (sizeof(a) / sizeof(a[0])), generator );