std::seed_seq - cppreference.com (original) (raw)

| | | | | ---------------- | | ------------- | | class seed_seq; | | (since C++11) |

std::seed_seq consumes a sequence of integer-valued data and produces a requested number of 32-bit unsigned integer values, 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] Nested types

[edit] Data members

Member Description
std::vector<result_type> v the underlying seed sequence(exposition-only member object*)

[edit] Member functions

| | constructs and seeds the std::seed_seq object (public member function) | | -------------------------------------------------------------------------------------------- | | | std::seed_seq is not assignable (public member function) | | | calculates the bias-eliminated, evenly distributed 32-bit values (public member function) | | | obtains the number of stored 32-bit values (public member function) | | | copies all stored 32-bit values (public member function) |

[edit] Example

#include #include #include   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'; }

Possible output:

4204997637 4246533866 1856049002 1129615051 690460811 1075771511 46783058 3904109078 1534123438 1495905678