我有这样的代码:如何使用不同的名称在for循环中创建多个对象?
// Generate objects from type DepositoFresco or DepositoNormal
number_depositosf = rand() % (valormaximo - valorminimo + 1) + valorminimo;
int j;
for (j = 0; j < number_depositosf; ++j) {
type_deposito = 0;
id_deposito = "df" + to_string(j);
number_paletes = rand() % (valormaximo - valorminimo + 1) + valorminimo;
number_produtos = rand() % (valormaximo - valorminimo + 1) + valorminimo;
capacity = rand() % (valormaximo - valorminimo + 1) + valorminimo;
area = rand() % (valormaximo - valorminimo + 1) + valorminimo;
distance = rand() % (valormaximo - valorminimo + 1) + valorminimo;
list_depositos.push_back(new DepositoFresco(type_deposito, id_deposito, number_paletes, number_produtos, capacity, area, distance));
}
此代码的工作,但我想要的是不同的名称创建对象(在混凝土中,在“id_deposito”变量名)。我tryed做这样的事情:
number_depositosf = rand() % (valormaximo - valorminimo + 1) + valorminimo;
int j;
for (j = 0; j < number_depositosf; ++j) {
type_deposito = 0;
id_deposito = "df" + to_string(j);
number_paletes = rand() % (valormaximo - valorminimo + 1) + valorminimo;
number_produtos = rand() % (valormaximo - valorminimo + 1) + valorminimo;
capacity = rand() % (valormaximo - valorminimo + 1) + valorminimo;
area = rand() % (valormaximo - valorminimo + 1) + valorminimo;
distance = rand() % (valormaximo - valorminimo + 1) + valorminimo;
DepositoFresco id_deposito = new DepositoFresco(type_deposito, id_deposito, number_paletes, number_produtos, capacity, area, distance)
list_depositos.push_back(id_deposito);
}
但它不工作。 任何人都知道如何解决它?
什么类型是list_depositos?你发布的大部分代码对于你的要求都是不必要的。 – user1810087 2014-11-24 10:33:37
我不知道你想要做什么,但有几个问题:'DepositoFresco id_deposito = new DepositoFresco'你指定一个非指针变量的指针。同样在第一个片段中,你可以使用'push_back()'指针,在第二个片段中你可以使用非指针。 – 2014-11-24 10:33:58
我想你想要一个std :: map。所以你可以做'list_depositos [id_deposito] = new DepositoFresco(...);' –
LMF
2014-11-24 10:35:22