我創建了一個類,我們稱之爲classA
。我想在函數main()
中創建一個隨機數的對象。我怎樣才能做到這一點,而不同地命名它們?我試過了絕望:創建隨機數量的對象
int a[100],i ,rnd;
srand (time(NULL));
rnd=(rand() %100);
for(i=0;i<=rnd;i++){
classa a[i];
}
但我知道這是行不通的。
我創建了一個類,我們稱之爲classA
。我想在函數main()
中創建一個隨機數的對象。我怎樣才能做到這一點,而不同地命名它們?我試過了絕望:創建隨機數量的對象
int a[100],i ,rnd;
srand (time(NULL));
rnd=(rand() %100);
for(i=0;i<=rnd;i++){
classa a[i];
}
但我知道這是行不通的。
使用這樣的事情:
std::vector<a> v(rand() % 10000); // creates [0, 10000) objects
除了使用'std :: uniform_int_distribution'和'std :: mt19937'來避免模偏差。 – rightfold
@rightfold一個談話,突然蘭特()是邪惡的:)。模數後是否統一? - 不(通常不是,就是這樣)。你真的在意嗎?我敢說你通常不會。 – ScarletAmaranth
@ScarletAmaranth不,在那之前是有問題的,但我想現在的問題正在得到更廣泛的報道。我[是](http://stackoverflow.com/a/8157725/365496)[推薦](http://stackoverflow.com/a/8317726/365496)[反對](http://stackoverflow.com/a/9485149/365496)使用'rand()'並贊成'
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> dis(1, 6);
std::map<std::string, a> objects;
for (int i=0; i < dis(gen); ++i)
objects.insert(std::make_pair("obj_"+std::to_string(i), a()));
使用std ::向量。矢量可以動態調整大小。 –