std::seed_seq - cppreference.com

##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# std::seed_seq

From cppreference.com
< cpp‎ | numeric‎ | random

Defined in header `<random>` |  |
class seed_seq; |  | (since C++11)

`std::seed_seq` consumes a sequence of integer-valued data and produces a requested number of unsigned integer values `i`, 0 ≤ i < 232
, based on the consumed data. The produced values are distributed over the entire 32-bit range even if the consumed values are close.

It provides a way to seed a large number of random number engines or to seed a generator that requires a lot of entropy, given a small seed or a poorly distributed initial seed sequence.

`std::seed_seq` meets the requirements of `SeedSequence`.

### [edit] Member types

Member type | Definition
`result_type` | std::uint_least32_t

### [edit] Member functions

(constructor) | constructs and seeds the std::seed_seq object (public member function)
operator= (deleted) | not copy-assignable (public member function)
generate | calculates the bias-eliminated, evenly distributed 32-bit values (public member function)
size | obtains the number of 32-bit values stored in std::seed_seq (public member function)
param | obtains the 32-bit values stored in std::seed_seq (public member function)

### [edit] Example

Run this code

    #include <random>
    #include <cstdint>
    #include <iostream>

    int main()
    {
        std::seed_seq seq{1,2,3,4,5};
        std::vector<std::uint32_t> seeds(10);
        seq.generate(seeds.begin(), seeds.end());
        for (std::uint32_t n : seeds) {
            std::cout << n << '\n';
        }
    }

Output:

    4204997637
    4246533866
    1856049002
    1129615051
    690460811
    1075771511
    46783058
    3904109078
    1534123438
    1495905678

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/numeric/random/seed_seq&oldid=63782"