假设您正在从事一个需要随机数的(严肃的)项目。
行如下:
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函数。所以问问大家的经验:自己实现这个功能可以吗?也许导出到一个单独的标题中,然后为 double 和 float 等重载它。 我问这个问题,因为在这个现代 C++ 时代,使用 STL 函数是标准的,在这种情况下,语法实际上迫使你自己实现。感谢您提供有关此主题的帮助和经验。
编辑:最后我想问的是,在任何处理随机数的项目中,这样的实现是否总是(迟早)会发生。
最佳答案
C++ 的主要目标之一是使编写特定领域的抽象变得容易;如果您编写的代码经常使用特定形式的随机数生成,请务必将其封装在适当的函数中。
关于c++ - 实现自己的随机函数是否被普遍接受? (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39808827/