std::uniform_int_distribution

From Cppreference

Jump to: navigation, search
Defined in header <random>

template< class IntType = int >
class uniform_int_distribution;
(C++11 feature)

Uniform random number distribution produces random integers i, uniformly distributed on the closed interval [a, b], that is, distributed according to the discrete probability function P(i|a,b) = 1/(b − a + 1).

Contents

[edit] Member types

Member type Definition
result_type the type of the result of operator(), equal to IntType
param_type the type of the parameter set, unspecified

[edit] Member functions

(constructor)
constructs new distribution
(public member function)
reset
resets the distribution state (no-op for uniform_int_distribution)
(public member function)
operator()
generates a new random number
(public member function)
a
returns the first parameter of the uniform_int_distribution parameter set
(public member function)
b
returns the second parameter of the uniform_int_distribution parameter set
(public member function)
param
get/set the parameter set
(public member function)
min
returns the inclusive lower bound of the distribution range
(public member function)
max
returns the inclusive upper bound of the distribution range
(public member function)

[edit] Non-member functions

operator==
operator!=
compares two distributions
(function template)
operator>>
operator<<
serializes/deserializes the distribution's parameter set
(function template)

[edit] Example

This program simulates throwing 6-sided dice.

#include <random>
#include <iostream>
int main()
{
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<> dis(1, 6);
    for(int n=0; n<10; ++n)
        std::cout << dis(gen) << ' ';
    std::cout << '\n';
}

Output:

1 1 6 5 2 2 5 5 6 2