【发布时间】:2016-10-01 16:17:02
【问题描述】:
假设您正在处理一个需要随机数的(严肃的)项目。
类似的行:
int num = rand() % 6 + 5; //random number between 5 - 10
(显然)不会出现在那里。 C++11 标头<random> 毫无疑问地击败了这个旧的 C-Style。
std::random_device rd;
std::mt19937 engine(rd());
std::uniform_int_distribution<int> generate(5, 10);
int num = generate(engine);
但是当在一个小组中工作时,我发现这个方法有两个问题:
语法怪异且难以阅读。
对于如此简单的任务来说太复杂了。
所以如果有一个看起来像这样的函数(基于此方法)会非常好:
int getRandom(int range_begin, int range_end);
就我而言,没有这样的 STL 功能。所以想请教各位的经验:这个功能自己实现可以吗?也许导出到单独的标题中,然后将其重载为双精度和浮点等。 我问这个问题,因为在现代 C++ 时代,使用 STL 函数是标准的,这是语法实际上迫使您自己实现的情况。感谢您在此主题上的帮助和经验。
编辑:最后我要问的是,在任何处理随机数的项目中,这种实现是否总是会发生(迟早)。
【问题讨论】:
-
你不需要任何人的许可来实现一个功能。
标签: c++ function c++11 random stl