Namespaces
Variants

std:: seed_seq

From cppreference.net
Definido en el encabezado <random>
class seed_seq ;
(desde C++11)

std::seed_seq consume una secuencia de datos de valor entero y produce un número solicitado de valores enteros sin signo de 32 bits, basándose en los datos consumidos. Los valores producidos se distribuyen en todo el rango de 32 bits incluso si los valores consumidos están cercanos.

Proporciona una forma de inicializar una gran cantidad de motores de números aleatorios o de inicializar un generador que requiere mucha entropía, dada una semilla pequeña o una secuencia de semillas inicial mal distribuida.

std::seed_seq cumple con los requisitos de SeedSequence .

Contenidos

Tipos anidados

Tipo Definición
result_type std::uint_least32_t

Miembros de datos

Miembro Descripción
std:: vector < result_type > v la secuencia de semillas subyacente
( objeto miembro solo para exposición* )

Funciones miembro

construye e inicializa el std::seed_seq objeto
(función miembro pública)
operator=
[deleted]
std::seed_seq no es asignable
(función miembro pública)
calcula los valores de 32 bits distribuidos uniformemente sin sesgo
(función miembro pública)
obtiene el número de valores de 32 bits almacenados
(función miembro pública)
copia todos los valores de 32 bits almacenados
(función miembro pública)

Ejemplo

#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';
}

Salida posible:

4204997637
4246533866
1856049002
1129615051
690460811
1075771511
46783058
3904109078
1534123438
1495905678