生成随机数和shared_ptr处理

时间:2019-05-15 20:02:07

标签: c++ vector random reference unique-ptr

我的问题是我不太会生成在代码中实现的随机数,而是想问你这里是否还好-我的意思是每次编译代码时它都应该生成新的随机数吗?此外,请您说明以下三个方面的区别:

for(auto someObject:SomeClass)

for(auto &someObject:SomeClass)

第三个显示在下面的方法中。

这里有一些类定义和生成随机数的方法

class DiscretePDFGenerator {
.
.
.
    vector<std::shared_ptr<DiscreteProbabilityValue>>probabilities_;
    std::random_device seed_;
    std::mt19937 rng_;
    std::uniform_real_distribution<double> distribution_;
.
.
.
}


std::string DiscretePDFGenerator::generateGrade ()
{
    string value;
    double rng,sumProbability=0.0;
    rng=distribution_(rng_);
    for  (auto &&probability: probabilities_)
    {
        sumProbability+=probability->getProbability();
        if (rng<sumProbability)
        {
            value= probability->getValue();
            break;
        }
    }
    return value;
}

我想问一下,如果您明白我的意思,是否甚至需要使其成为双重参考或单一参考还是什至没有参考。 抱歉,这是一个愚蠢的问题,谢谢您的帮助!

0 个答案:

没有答案