std::seed_seq
Определено в заголовке <random> |
||
|---|---|---|
class seed_seq; |
(с C++11) |
std::seed_seq потребляет последовательность целых данных и генерирует запрошенное количество значений беззнаковых целых чисел i, 0 ≤ i < 232, на основе потребленных данных. Сгенерированные значения распределяются по всему 32-битному диапазону, даже если потребленные значения близки.
Она предоставляет способ для инициализации большого количества генераторов псевдослучайных чисел или инициализации генератора, требующего большой энтропии, при заданном малом или плохо распределённом начальном наборе.
std::seed_seq удовлетворяет требованиям SeedSequence.
Типы членов
| Тип члена | Определение |
|---|---|
result_type (C++11) |
std::uint_least32_t |
Члены-функции
|
(C++11) |
строит и инициализирует объект std::seed_seq (публичная функция-член) |
| operator=
[удалено] (C++11) |
объект std::seed_seq не может быть присвоен (публичная функция-член) |
|
(C++11) |
вычисляет значения 32-битных чисел с устранением смещения и равномерным распределением (публичная функция-член) |
|
(C++11) |
получает количество 32-битных значений, сохранённых в std::seed_seq (публичная функция-член) |
|
(C++11) |
получает 32-битные значения, сохранённые в std::seed_seq (публичная функция-член) |
Пример
#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';
}Возможный вывод:
4204997637 4246533866 1856049002 1129615051 690460811 1075771511 46783058 3904109078 1534123438 1495905678
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/numeric/random/seed_seq