Wystarczy przypisać nowego rozkładu do zmiennej:
std::uniform_int_distribution<int> distr(0, 10);
distr = std::uniform_int_distribution<int>(5, 13);
Albo utworzyć parametr, który (@awesomeyi odpowiedź wymagane tworzenie obiektów dystrybucyjnych, to nadal wymaga obiektu param_type tworzenie)
std::uniform_int_distribution<int> distr(0, 10);
distr.param(std::uniform_int_distribution<int>::param_type(5, 13));
Dowód, że param_type zadziała (fo r @stefan):
P jest powiązanym parametrem param_type. Musi spełniać wymagania w zakresie: CopyConstructible, CopyAssignable i EqualityComparable. Posiada również konstruktorów, które mają te same argumenty tych samych typów jak konstruktorów D i ma funkcje składowe identyczne z pobierające parametrów-powrocie z D
http://en.cppreference.com/w/cpp/concept/RandomNumberDistribution
Czy "parametr_parametru" gwarantuje, że konstruktor przyjmuje dwie wartości? Nie mogę znaleźć niczego na cppreference.com – stefan
@ stefan, dla uniform_int_distribution? tak, możesz to zobaczyć, wykonując deklarację "param_type". – dreamzor
Nie widzę żadnych wymagań dla konstruktorów param_typu w standardzie. Czy możesz wskazać mi to? Wszystko, co widzę, to, że 'typ_parametru' jest' typedef nieokreślonym parametrem param_type'. Sugerowałoby to, że nie ma gwarancji dla takiego konstruktora. – stefan