加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 通过引用辅助函数传递随机数生成器mt19937是否正确?

发布时间:2020-12-16 10:04:46 所属栏目:百科 来源:网络整理
导读:int helper( mt19937 generator ){ do stuff; return 0; }#include "helper.h" // helper function defined in separate source file and included in headermt19937 generator(time(NULL));int main( ) { help(generator);} 创建和播种mt19937随机数生成器
int helper( mt19937& generator ){ 

    do stuff; 
    return 0; 

}

#include "helper.h" 
// helper function defined in separate source file and included in header

mt19937 generator(time(NULL));

int main( ) {

    help(generator);

}

创建和播种mt19937随机数生成器是否正确,然后通过引用将其传递给函数使用?

我这样做是因为我知道我只想种下mt19937一次.但是我在需要使用随机数生成器的单独源文件中有很多辅助函数.例如.具有随机播放功能.

解决方法

是的,通过引用传递发电机是正确的. mt19937具有内部状态,需要进行修改才能获得下一个随机数.如果您按值传递生成器,那么您将复制该状态,然后多个函数将获得相同的随机数.这也是你不能通过const& amp;因为如果它是const,它将无法修改该内部状态.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读