在< random > 有uniform_int_distribution當我創建我定義的時間間隔。 創建後可以更改此間隔嗎?我可以更改分配參數嗎?
例如
std::uniform_int_distribution distr(0, 10);
// can I change an interval here ?
在< random > 有uniform_int_distribution當我創建我定義的時間間隔。 創建後可以更改此間隔嗎?我可以更改分配參數嗎?
例如
std::uniform_int_distribution distr(0, 10);
// can I change an interval here ?
只是分配一個新的分配給變量:
std::uniform_int_distribution<int> distr(0, 10);
distr = std::uniform_int_distribution<int>(5, 13);
或者,創建一個參數(@awesomeyi答案需要分配對象的創建,這仍然需要param_type對象創建)
std::uniform_int_distribution<int> distr(0, 10);
distr.param(std::uniform_int_distribution<int>::param_type(5, 13));
證明參數類型將工作(fo r @stefan):
P是關聯的param_type。它應滿足 CopyConstructible,CopyAssignable和EqualityComparable 的要求。它也有采取 相同類型作爲d的構造的同樣的參數構造函數和具有成員函數 相同d的參數,返回吸氣劑
http://en.cppreference.com/w/cpp/concept/RandomNumberDistribution
'param_type'是否保證有一個帶有兩個值的構造函數?我找不到cppreference.com上的任何內容 – stefan
@stefan,用於uniform_int_distribution?是的,你可以通過遵循'param_type'聲明來看到它。 – dreamzor
我沒有看到標準中param_type構造函數的任何要求。你能指點我嗎?我所能看到的就是,'param_type'是一個'typedef unspecified param_type'。這表明,這樣的構造函數並不能保證。 – stefan