класс — Использование rand () и srand () в переполнении стека

Я сделал класс с функцией, которая возвращает случайно сгенерированный pair<int, int> представлять пару координат. В начале функции у меня есть srand(time(NULL)) и я использую rand() % 50 чтобы получить пару случайных чисел.

Это прекрасно работает … пока у меня есть только один объект этого. Если у меня есть два разных объекта этого класса и я вызываю функцию для каждого объекта (под этим я подразумеваю попытку сгенерировать две разные случайные координаты для двух разных объектов этого класса), он возвращает одну и ту же пару координат для каждого объекта.

Оглядываясь назад, я могу понять, почему это происходит — потому что я получаю случайное число на основе текущего времени, верно? Но какой метод я должен использовать для возврата случайной пары КАЖДЫЙ РАЗ, когда я вызываю функцию этого класса?

2

Решение

В начале функции у меня есть srand(time(NULL))

Вызов srand() один раз в начале вашей программы и никогда больше.

PS: рассмотреть возможность использования <random> вместо Си-традиционных функций.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector