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) (depuis C++11)
template < class SeedSeq >
void seed ( SeedSeq & seq ) ;
(2) (depuis C++11)

Définit l' état du moteur de nombres aléatoires.

1) Immédiatement après que l'état est défini, * this == std:: mersenne_twister_engine ( value ) est true .
2) Immédiatement après que l'état est défini, * this == std:: mersenne_twister_engine ( seq ) est true .

Table des matières

Paramètres

value - valeur de départ à utiliser pour définir l'état
seq - séquence de départ à utiliser pour définir l'état

Exceptions

2) Si SeedSeq n'est pas std::seed_seq , lance les exceptions levées par l'appel seq.generate .

Complexité

1) Identique à std:: mersenne_twister_engine ( value ) .
2) Identique à std:: mersenne_twister_engine ( seq ) .

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Applicable à Comportement publié Comportement corrigé
LWG 2181 C++11 la surcharge ( 2 ) ne lançait pas d'exception même si l'appel à seq.generate lance une exception propage l'exception

Voir aussi

construit le moteur
(fonction membre publique)

Exemple

#include <iostream>
#include <random>
int main()
{
    std::mt19937 gen;
    // Initialiser le générateur avec un entier non signé
    gen.seed(1);
    std::cout << "après initialisation par 1: " << gen() << '\n';
    // Initialiser le générateur avec deux entiers non signés
    std::seed_seq sseq{1, 2};
    gen.seed(sseq);
    std::cout << "après initialisation par {1,2}: " << gen() << '\n';
}

Sortie possible :

après initialisation par 1: 1791095845
après initialisation par {1,2}: 3127717181