[英]Why is my mt19937 Random generator giving me ridiculous results? C++
[英]C++ random generator mt19937, is it in <random> or <bits/random.h>?
這是<random>
。
<bits/random.h>
是GCC特定的實現。 僅包括<random>
。
CLion通過搜索實際定義的缺失類的位置來普遍地進行此操作,對於GCC,它是<bits/random.h>
,這就是為什么建議將其包括在內。 這不是形式上的錯誤,但這是非跨平台的,甚至是非交叉編譯的。
您應該升級GCC (2015年11月的當前版本為GCC 5.2 ,它具有更好的C ++ 11支持),並將其作為g++ -std=c++11
調用(也可以使用-Wall -Wextra -g
來獲取所有內容)警告,更多警告和調試信息),那么當然可以使用#include <random>
,如此處所述 。
(可以通過從下載的源代碼中進行編譯來升級到GCC 5.2;如果需要,可以詢問其他問題)
如果僅直接#include <bits/random.h>
直接是特定於實現的( 絕不包括自己的bits/*.h
。h內部頭文件)和IIRC,則會收到錯誤消息(或至少出現嚴重警告)。
您無需使用Clion。 編譯器是GCC。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.