# C++ concepts: SeedSequence

From cppreference.com
< cpp‎ | concept

A `seed sequence` is an object that produces unsigned integer values i in the range 0 ≤ i < 232
based on a consumed range of integer data.

### Requirements

- `S` is a SeedSequence.
- `q` is an object of `S` and `r` is a potentially constant object of `S`.
- `T` is the `result_type`.
- `ib`,`ie` are `InputIterator`s with a `value_type` of unsigned integer values of at least 32 bits.
- `il` is an std::initializer_list<T>.
- `rb`,`re` are mutable `RandomAccessIterator`s with a `value_type` of unsigned integer values of at least 32 bits.
- `ob` is an `OutputIterator`.

Expression | Type | Notes | Complexity
--- | --- | --- | ---
`S::result_type` | `T` | Unsigned integer of at least 32 bits | compile-time
`S()` |  | Creates a seed sequence with the same default values as other objects of type `S` | constant
`S(ib,ie)` |  | Creates a seed sequence based on the supplied input bits by [`ib`,`ie`) | O(ie-ib)
`S(il)` |  | The same as `S(il.begin(), il.end())` |
`q.generate(rb,re)` | `void` | Fills [`rb`,`re`) with 32-bit quantities depending on the initial supplied values and potential previous calls to `generate`. If `rb == re`, it does nothing. | O(re-rb)
`r.size()` | `size_t` | The amount of 32-bit integers copied by `param`. | constant
`r.param(ob)` | `void` | Copies 32-bit values to `ob` that would reproduce the current state of the object if passed to a constructor of `S`. | O(r.size())

### See also

- std::seed_seq

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/concept/SeedSequence&oldid=82771"