std::seed_seq
From cppreference.com
                    
                                        
                    
                    
                                                            
                    |   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.
Nested types
| Type | Definition | 
 result_type
 | 
std::uint_least32_t | 
Data members
| Member | Description | 
 std::vector<result_type> v
 | 
 the underlying seed sequence (exposition-only member object*)  | 
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)  | 
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