Namespaces
Variants

std::mersenne_twister_engine<UIntType,w,n,m,r,a,u,d,s,b,t,c,l,f>:: seed

From cppreference.net

void seed ( result_type value = default_seed ) ;
(1) (desde C++11)
template < class SeedSeq >
void seed ( SeedSeq & seq ) ;
(2) (desde C++11)

Establece el estado del motor de números aleatorios.

1) Inmediatamente después de establecer el estado, * this == std:: mersenne_twister_engine ( value ) es true .
2) Inmediatamente después de establecer el estado, * this == std:: mersenne_twister_engine ( seq ) es true .

Contenidos

Parámetros

value - valor de semilla a utilizar para establecer el estado
seq - secuencia de semilla a utilizar para establecer el estado

Excepciones

2) Si SeedSeq no es std::seed_seq , lanza las excepciones generadas por la llamada seq.generate .

Complejidad

1) Igual que std:: mersenne_twister_engine ( value ) .
2) Igual que std:: mersenne_twister_engine ( seq ) .

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares publicados anteriormente de C++.

DR Aplicado a Comportamiento publicado Comportamiento correcto
LWG 2181 C++11 la sobrecarga ( 2 ) no lanzaría excepción incluso si la llamada a seq.generate lanza una propaga la excepción

Véase también

construye el motor
(función miembro pública)

Ejemplo

#include <iostream>
#include <random>
int main()
{
    std::mt19937 gen;
    // Inicializar el motor con un entero sin signo
    gen.seed(1);
    std::cout << "after seed by 1: " << gen() << '\n';
    // Inicializar el motor con dos enteros sin signo
    std::seed_seq sseq{1, 2};
    gen.seed(sseq);
    std::cout << "after seed by {1,2}: " << gen() << '\n';
}

Salida posible:

after seed by 1: 1791095845
after seed by {1,2}: 3127717181