我有這樣的代碼:如何使用不同的名稱在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