Я сделал класс с функцией, которая возвращает случайно сгенерированный pair<int, int>
представлять пару координат. В начале функции у меня есть srand(time(NULL))
и я использую rand() % 50
чтобы получить пару случайных чисел.
Это прекрасно работает … пока у меня есть только один объект этого. Если у меня есть два разных объекта этого класса и я вызываю функцию для каждого объекта (под этим я подразумеваю попытку сгенерировать две разные случайные координаты для двух разных объектов этого класса), он возвращает одну и ту же пару координат для каждого объекта.
Оглядываясь назад, я могу понять, почему это происходит — потому что я получаю случайное число на основе текущего времени, верно? Но какой метод я должен использовать для возврата случайной пары КАЖДЫЙ РАЗ, когда я вызываю функцию этого класса?
В начале функции у меня есть
srand(time(NULL))
Вызов srand()
один раз в начале вашей программы и никогда больше.
PS: рассмотреть возможность использования <random>
вместо Си-традиционных функций.
Других решений пока нет …