gpt4 book ai didi

C++0x : uniform_real_distribution is not a member of std

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:50:31 28 4
gpt4 key购买 nike

我正在尝试使用 c++0x 编译我的第一段代码。我很擅长 C++,但是这个让我难住了。以下将不会编译:

#include <iostream>
#include <random>

int main()
{
unsigned seed = 12345;
std::mt19937 generator(seed);

std::uniform_real_distribution<double> distro1(0.0, 1.0);
for (unsigned int i = 0; i < 25; i++)
{
std::cout << "Help" << std::endl;
std::cout << "Value == " << distro1(generator) << std::endl;
}
}

我用以下内容编译:

g++ -std=c++0x myFile.cpp or with g++ -std=gnu++0x myFile.cpp

我得到的错误是:

myFile.cpp: In function ‘int main()’:
myFile.cpp:11: error: ‘uniform_real_distribution’ is not a member of ‘std’
myFile.cpp:11: error: expected primary-expression before ‘double’
myFile.cpp:11: error: expected ‘;’ before ‘double’
myFile.cpp:15: error: ‘distro1’ was not declared in this scope

G++ 是: g++ --版本 g++ (Debian 4.4.5-8) 4.4.5

奇怪的是,它编译通过了 mt19937 实例化,如果我只是调用 mt19937::operator(),我会得到预期的输出。此外,如果我将发行版切换为 normal_distribution,它会编译并输出“Help”行,但不会执行任何其他操作。通过ps aux可以看到进程在运行,但是没有输出。

我错过了什么愚蠢的东西吗?我基本上是从 cplusplus.com 复制代码来显示 mwe。谢谢你的帮助

最佳答案

您必须升级到更高版本的编译器(您的程序可以在 GCC 4.7.2 上正常编译)。 GCC 4.4.5 附带的标准库的实现显然不(完全)符合 C++11。

关于C++0x : uniform_real_distribution is not a member of std,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16659016/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com