mt19937 seed(){
mt19937 stochastic(time(NULL));
return stochastic;
}
long long random(long long a,long long b){
uniform_int_distribution<long long>result(a,b);
return result(seed);
}
我想写一个造数据的随机数,但编译器报
D:/RedPanda C++/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/stl_algo.h 66 0 In file included from D:/RedPanda C++/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/stl_algo.h
D:/RedPanda C++/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/uniform_int_dist.h 0 -1 In instantiation of 'std::uniform_int_distribution<_IntType>::result_type std::uniform_int_distribution<_IntType>::operator()(_UniformRandomNumberGenerator&, const std::uniform_int_distribution<_IntType>::param_type&) [with _UniformRandomNumberGenerator = std::mersenne_twister_engine<unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>(); _IntType = long long int; std::uniform_int_distribution<_IntType>::result_type = long long int]':
D:/RedPanda C++/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/uniform_int_dist.h 166 51 required from 'std::uniform_int_distribution<_IntType>::result_type std::uniform_int_distribution<_IntType>::operator()(_UniformRandomNumberGenerator&) [with _UniformRandomNumberGenerator = std::mersenne_twister_engine<unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>(); _IntType = long long int; std::uniform_int_distribution<_IntType>::result_type = long long int]'
D:/C++/造测试点/test.cpp 11 20 required from here
D:/RedPanda C++/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/uniform_int_dist.h 223 4 [错误] 'std::mersenne_twister_engine<unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>()' is not a class, struct, or union type
D:/RedPanda C++/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/uniform_int_dist.h 226 4 [错误] 'std::mersenne_twister_engine<unsigned int, 32, 624, 397, 31, 2567483615, 11, 4294967295, 7, 2636928640, 15, 4022730752, 18, 1812433253>()' is not a class, struct, or union type
程序也没断点。
源代码
#include<bits/stdc++.h>
using namespace std;
bool num[1000000]={};
int stu[1000000]={};
mt19937 seed(){
mt19937 stochastic(time(NULL));
return stochastic;
}
long long random(long long a,long long b){
uniform_int_distribution<long long>result(a,b);
return result(seed);
}
int main(){
for(int i=1;i<=10;i++){
int n=random(1,100),l=0;
cout<<n<<endl;
for(int j=0;j<n;j++){
int k=random(1,100);
if(!num[k]){
cout<<k<<' ';
num[k]=1;
stu[l]=k;
l++;
j--;
}
}
sort(stu,stu+l);
cout<<endl<<endl<<endl<<endl;
for(int j=0;j<l;j++){
cout<<stu[j]<<' ';
}
}
return 0;
}