# std::seed_seq::seed_seq

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

seed_seq(); | (1) | (since C++11)
seed_seq( const seed_seq& ) = delete; | (2) | (since C++11)
template< class InputIt > seed_seq( InputIt begin, InputIt end ); | (3) | (since C++11)
template< class T > seed_seq( std::initializer_list<T> il ); | (4) | (since C++11)

1) The default constructor creates a `std::seed_seq` object with an initial seed sequence of length zero.
2) The copy constructor is deleted: `std::seed_seq` is not copyable.
3) Constructs a `std::seed_seq` with the initial seed sequence obtained by iterating over the range `[begin, end)` and copying the values obtained by dereferencing the iterator, modulo 232
(that is, the lower 32 bits are copied)
4) Equivalent to seed_seq(il.begin(), il.end()). This constructor enables list-initialization.

### Parameters

begin, end | - | the initial seed sequence represented as a pair of input iterators whose std::iterator_traits<>::value_type is an integer type
il | - | std::initializer_list of objects of integer type, providing the initial seed sequence
Type requirements
- `InputIt` must meet the requirements of LegacyInputIterator.

### Exceptions

1) Does not throw

### Example

Run this code

    #include <random>
    #include <sstream>
    #include <iterator>
    int main()
    {
        std::seed_seq s1; // default-constructible
        std::seed_seq s2{1, 2, 3}; // can use list-initialization
        std::seed_seq s3 = {-1, 0, 1}; // another form of list-initialization
        int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        std::seed_seq s4(a, a + 10); // can use iterators
        std::istringstream buf("1 2 3 4 5");
        std::istream_iterator<int> beg(buf), end;
        std::seed_seq s5(beg, end); // even stream input iterators
    }

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