Создание случайного числа объектов

0

Я создал класс, позвонил ему classA. Я хочу создать в функции main() случайное число объектов. Как я могу это сделать, именовать их по-другому? Я пробовал из отчаяния:

int a[100],i ,rnd;

srand ( time(NULL) ); 

rnd=(rand() %100);      
for(i=0;i<=rnd;i++){
    classa a[i];
}

но я знал, что это не сработает.

  • 0
    используйте std :: vector. Векторы могут быть динамически изменены.
Теги:
class
object

2 ответа

5
Лучший ответ

Используйте что-то вроде этого:

std::vector<a> v(rand() % 10000);  // creates [0, 10000) objects
  • 2
    За исключением использования std::uniform_int_distribution и std::mt19937 чтобы избежать смещения по модулю.
  • 1
    @ Rightfold Один разговор и вдруг Рэнд () это зло :). Равномерно ли по модулю? - нет (обычно нет). Вы действительно заботитесь? Я бы осмелился утверждать, что вы обычно этого не делаете.
Показать ещё 6 комментариев
0
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()));

Ещё вопросы

Сообщество Overcoder
Наверх
Меню