小编zar*_*rro的帖子

在结构中使用随机库后删除函数错误

我正在尝试围绕标准随机数生成器编写一个简单的结构。根据编译器,我可以初始化此类,但是当我尝试使用该函数时,它会出现以下错误:

错误 C2280 'RandNormGen::RandNormGen(const RandNormGen &)':尝试引用已删除的函数

我不完全理解这意味着什么或该怎么做,但我认为我将其范围缩小到与 std ::random_device rd;有关。

这是我的结构:

struct RandNormGen {
    std::random_device rd;
    std::mt19937 gen;
    std::normal_distribution<float> normalDist;

    RandNormGen() {
        gen = std::mt19937(rd());
        normalDist = std::normal_distribution<float>(0, 1);
    }

    float randFloat(float sigma, float mean = 0) {
        float r = normalDist(gen) * sigma + mean;
        return r;
    }
};
Run Code Online (Sandbox Code Playgroud)

任何帮助或见解将不胜感激!

c++ random struct std deleted-functions

1
推荐指数
1
解决办法
313
查看次数

标签 统计

c++ ×1

deleted-functions ×1

random ×1

std ×1

struct ×1