我正在尝试围绕标准随机数生成器编写一个简单的结构。根据编译器,我可以初始化此类,但是当我尝试使用该函数时,它会出现以下错误:
错误 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)
任何帮助或见解将不胜感激!