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 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 | uint_least32_t | 
[edit] Member functions
|   constructs and seeds the std::seed_seq object  (public member function)  | |
|    operator= (deleted)  | 
   not copy-assignable   (public member function)  | 
|    calculates the bias-eliminated, evenly distributed 32-bit values  (public member function)  | |
|    obtains the number of 32-bit values stored in std::seed_seq   (public member function)  | |
|    obtains the 32-bit values stored in std::seed_seq  (public member function)  | |
[edit] Example
#include <random> #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:
3890079369 567513683 1868094942 738085780 2849436979 1267185068 3817490445 2911200628 2374022914 1233116465