Namespaces
Variants
Actions

std::seed_seq

From cppreference.com
< cpp‎ | numeric‎ | random
 
 
Numerics library
 
Pseudo-random number generation
 
 
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 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

Type Definition
result_type std::uint_least32_t

[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)
operator=
[deleted]
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

Run this code
#include <cstdint>
#include <iostream>
#include <random>
 
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
Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/numeric/random/seed_seq&oldid=177242"

AltStyle によって変換されたページ (->オリジナル) /