Basta assegnare una nuova distribuzione alla variabile:
std::uniform_int_distribution<int> distr(0, 10);
distr = std::uniform_int_distribution<int>(5, 13);
Oppure, creare un parametro per questo (la creazione di oggetti di distribuzione risposta necessaria @awesomeyi, questo richiede ancora oggetto param_type creazione)
std::uniform_int_distribution<int> distr(0, 10);
distr.param(std::uniform_int_distribution<int>::param_type(5, 13));
Prova che param_type funzionerà (per r @stefan):
P è il parametro param_type associato. Deve soddisfare i requisiti CopyConstructible, CopyAssignable e EqualityComparable . Essa ha anche costruttori che portano gli stessi argomenti di dello stesso tipo di costruttori di D ed ha funzioni membro identiche alle getter su parametri ritorno di D
http://en.cppreference.com/w/cpp/concept/RandomNumberDistribution
È il 'param_type' garantito che un costruttore abbia due valori? Non riesco a trovare nulla su cppreference.com – stefan
@stefan, per uniform_int_distribution? si, puoi vederlo seguendo la dichiarazione 'param_type'. – dreamzor
Non vedo alcun requisito sui costruttori param_type nello standard. Puoi indicarmi? Tutto quello che posso vedere è che 'param_type' è un' typedef non specificato param_type'. Ciò suggerirebbe che non esiste alcuna garanzia per tale costruttore. – stefan