在< 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