작동, 난 exponential_distribution
작품이지만,와 Mingw-W64의 G ++에서 (C++ TR1 헤더 <tr1/random>
에서) uniform_int_distribution
을 사용할 수 없습니다. 가와 Mingw-W64에서 "uniform_int_distribution"하지만, "exponential_distribution"를 사용할 수 없습니다 어떤 이유로
#include <tr1/random>
using namespace std;
int main() {
tr1::random_device rd;
tr1::exponential_distribution<int> exprng(1);
tr1::uniform_int_distribution<> unirng(5, 500);
tr1::mt19937 rnd_gen(rd());
// ...
}
나는 그것을 컴파일하려고
, 나는이 얻을 : 내가 컴파일러, 4.9.2의 최신 버전을 실행하고있어> g++ -o foo.exe -std=c++11 foo.cpp
foo.cpp: In function 'int main()':
foo.cpp:8:5: error: 'uniform_int_distribution' is not a member of 'std::tr1'
tr1::uniform_int_distribution<> unirng(5, 500)
^
foo.cpp:8:35: error: expected primary-expression before '>' token
tr1::uniform_int_distribution<> unirng(5, 500);
^
foo.cpp:8:50: error: 'unirng' was not declared in this scope
tr1::uniform_int_distribution<> unirng(5, 500);
^
다음은 관련 코드입니다. 이미 using namespace std
을 제거하고 이름 공간 접두사를 std::tr1
및 std
으로 변경했습니다. 어떤 아이디어?
TR1에서 'uniform_int'라고 부르지 않습니까? 'uniform_int_distribution'에 대해서는 TR1이 아니라 C++ 11 표준 라이브러리의''을 포함하십시오. –
dyp
훌륭합니다. 자기 답변 작성하기. – bwDraco