📌  相关文章
📜  C++中的std :: uniform_int_distribution reset()方法(带示例)(1)

📅  最后修改于: 2023-12-03 15:29:54.048000             🧑  作者: Mango

C++中的std::uniform_int_distribution reset()方法

在C++中,std::uniform_int_distribution是用于生成指定范围内的等概率整数的随机变量分布的类。它继承自std::uniform_int_distribution类,并提供了reset()方法,用于重置分布的状态,即将生成器的状态设置为初始状态。

方法语法
void reset();
方法参数

该方法没有参数。

方法返回值

该方法没有返回值。

使用示例

下面的示例演示了如何使用reset()方法。

#include <iostream>
#include <random>

int main(){
    std::mt19937 rng(123);
    std::uniform_int_distribution<int> dist(0, 9);
    
    for(int i = 0; i < 5; i++){
        std::cout << dist(rng) << " ";
    }
    std::cout << std::endl;
    
    dist.reset();
    
    for(int i = 0; i < 5; i++){
        std::cout << dist(rng) << " ";
    }
    std::cout << std::endl;
    
    return 0;
}

输出:

1 6 1 6 4
4 0 6 4 6

首先,我们使用std::mt19937作为随机数生成器,并使用std::uniform_int_distribution<int>类初始化一个分布,该分布生成介于0和9之间(包括0和9)的整数,然后生成并打印随机数序列。

然后,我们调用了reset()方法来重置分布,然后再次生成并打印随机数序列。

从输出可以看出,运行两次时,它们都会生成不同的序列,这是由于我们在每次序列被生成后都重置了分布的状态。