C ++, как выбрать случайную величину из списка векторов? - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь создать функцию, которая случайным образом выбирает имя клиента из списка векторов. Ниже приведена моя попытка использовать эту функцию, например, с помощью механизма mt19937

Carly:Cat:ABCCCCE.
Dodgy Dan:Dog:BCACECC.
Ernie:Ettin:AABCCDD.
Sally:Snake:AEEEEEE.

, выше - содержимое списка векторов. Если работающая функция имеет возможность вернуть Карли, Хитри Дэн, Эрнина или Салли в случайном порядке (имя клиента).

struct Customer {
    std::string customerName;
};

float randomCus(const vector<Customer>& customerList,const Builder& b) {

float total;
std::random_device random_device;
std::mt19937 engine{random_device()};
std::uniform_int_distribution<int> dist(0, customerList.size() - 1);

for(Customer x:customerList) {
for(int i=0; i < customerList.size(); i++){

int random_element = x.customerName[dist(engine)];
cout << random_element <<  "This is a random customer name: ";
}
return total;
}

Ожидаемый результат может включать

Carly was randomlly selected
Dodgy Dan was randomlly selected 

1 Ответ

0 голосов
/ 17 апреля 2020

Вы получаете случайный символ имени coustomer.

void randomCus(const vector<Customer>& customerList,const Builder& b) {

std::random_device random_device;
std::mt19937 engine{random_device()};
std::uniform_int_distribution<int> dist(0, customerList.size() - 1);

int random_index = dist(engine);
std::cout << "This is a random customer name: " << customerList[random_index].customerName;

}

При каждом вызове функции печатается одно случайное имя.

edit: отсутствует вызов члена && Typo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...