关于随机种子的问题
											 程序代码:
程序代码:
#include <iostream>
#include <vector>
#include <ctime>
#include <string>
#include <algorithm>
#include <random>
using namespace std;
class A{
public:
    static string getName();
};
string A::getName(){
    vector<string> v1{ "张","王", "李", "赵", "周", "吴", "郑", "王", "安", "高" };
    vector<string> v2{ "小","晓", "明", "月", "佳", "志", "其", "世", "玉", "丽" };
    vector<string> v3{ "明","新", "锋", "", "林", "红", "艳", "", "强", "" };
    vector<int> v{ 0,1,2,3,4,5,6,7,8,9 };
    random_device rd;
    mt19937 g(rd());
    shuffle(v.begin(), v.end(), g);
    return v1[v[0]] + v2[v[1]] + v3[v[2]];
}
int main()
{
    for (int i = 0; i < 20; i++)
    {
        cout << A::getName() << endl;
    }
    system("pause");
    return 0;
}
此代码段在vc下可以正确获得20个随机中文名
可能的输出:
 程序代码:
程序代码:/* 赵晓强 张世强 王世明 王世 周小新 安志新 李佳 吴月明 周明强 赵佳锋 张世林 赵志艳 赵明强 吴明林 周晓红 郑志锋 高其红 张晓锋 周晓 吴玉 */
在mingw下,20个结果全部一样。
我尝试将
random_device rd;
mt19937 g(rd());
更改为
std::mt19937 g(time(NULL));
但问题没有得到解决,请问mingw下应该如何设置随机数种子才能解决这个问题,谢谢

 
											






 
	    
