gpt4 book ai didi

c++ - ISO C++ 禁止声明没有类型的 'uniform_real_distribution'

转载 作者:行者123 更新时间:2023-11-30 05:43:48 25 4
gpt4 key购买 nike

#ifndef _RNG_H
#define _RNG_H

#include <random>

class RNG {
public:
RNG() :
_generator(_default_seed) { }

RNG(uint32_t seed):
_generator(seed) { }

double operator()();

private:
std::mt19937 _generator;
static std::uniform_real_distribution<> _urd;
static const int _default_seed;
};

#endif // _RNG_H

我正在尝试封装与包装类一起使用的随机数生成器。但是当试图编译上面的代码时,我得到以下错误:

rng.h:37: 错误:ISO C++ 禁止声明没有类型的“uniform_real_distribution”

rng.h:37: 错误:'::' 的使用无效

rng.h:37: 错误:应为 ';'在 '<' 标记之前

但我只是想按照 http://en.cppreference.com/w/cpp/numeric/random/uniform_real_distribution 中给出的示例进行操作

最佳答案

G++ 4.4.7 实现 Technical Report 1's random ,不是 C++11 的随机数。

这意味着没有 std::uniform_real_distribution 类型。

您可以编写如下代码:

#include <random>
#include <iostream>

int main() {
std::random_device rng;
double x = std::uniform_real<>()(rng);
printf("%lf\n", x);
}

虽然我怀疑它有问题,因为它返回的值比范围 [0, 1) 大得多,这是我理解的限制应该是什么。

关于c++ - ISO C++ 禁止声明没有类型的 'uniform_real_distribution',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30089162/

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