Spec-Zone.ru › C++

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 не может быть присвоен
(публичная функция-член)
generate
(C++11)
вычисляет значения 32-битных чисел с устранением смещения и равномерным распределением
(публичная функция-член)
size
(C++11)
получает количество 32-битных значений, сохранённых в std::seed_seq
(публичная функция-член)
param
(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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API