gpt4 book ai didi

C++ 类成员和延迟初始化

转载 作者:行者123 更新时间:2023-11-28 07:31:49 25 4
gpt4 key购买 nike

<分区>

我目前正在研究新的 c++11 random图书馆。为了简化,我创建了以下类

class my_rand {
private:
std::mt19937_64 eng;
public:
my_rand() {
std::array<int, std::mt19937::state_size> seed_data;
std::random_device rd;
std::generate_n(seed_data.data(), seed_data.size(), std::ref(rd));
std::seed_seq seq(std::begin(seed_data), std::end(seed_data));
this->eng.seed(seq);
};
unsigned long long operator() () {
return this->eng();
};
};

这样我就可以做 my_rand rand;一次然后反复调用rand()生成随机数。

但是,现在我想使用 std::uniform_int_distribution设置绑定(bind)到我得到的数字。在创建对象时指定边界很明显,因此调用保持不变。问题是,如果我添加私有(private)成员(类似于 std::uniform_int_distribution<long long> uid; ),那么稍后在构造函数中我将无法设置边界,因为 uid将已经被初始化。我找不到 std::uniform_int_distribution 的方法允许在创建后设置限制。

我很可能在这里遗漏了一些要点,所以在此先感谢您的帮助。

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