Namespaces
Variants

std:: seed_seq

From cppreference.net
Определено в заголовке <random>
class seed_seq ;
(начиная с C++11)

std::seed_seq потребляет последовательность целочисленных данных и производит запрошенное количество 32-битных беззнаковых целых значений на основе потребленных данных. Полученные значения распределены по всему 32-битному диапазону, даже если потребленные значения близки друг к другу.

Он предоставляет способ инициализации большого количества генераторов случайных чисел или инициализации генератора, требующего много энтропии, при наличии небольшого начального значения или плохо распределенной начальной последовательности инициализации.

std::seed_seq соответствует требованиям SeedSequence .

Содержание

Вложенные типы

Тип Определение
result_type std::uint_least32_t

Члены данных

Участник Описание
std:: vector < result_type > v Базовая последовательность затравки
( объект-член только для демонстрации* )

Функции-члены

создаёт и инициализирует std::seed_seq объект
(публичная функция-член)
operator=
[deleted]
std::seed_seq не может быть присвоен
(публичная функция-член)
вычисляет 32-битные значения без смещения с равномерным распределением
(публичная функция-член)
получает количество хранимых 32-битных значений
(публичная функция-член)
копирует все хранимые 32-битные значения
(публичная функция-член)

Пример

#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