Namespaces
Variants

std:: seed_seq

From cppreference.net
Défini dans l'en-tête <random>
class seed_seq ;
(depuis C++11)

std::seed_seq consomme une séquence de données de type entier et produit un nombre demandé de valeurs entières non signées de 32 bits, basées sur les données consommées. Les valeurs produites sont distribuées sur toute la plage de 32 bits même si les valeurs consommées sont proches.

Il offre un moyen d'initialiser un grand nombre de moteurs de nombres aléatoires ou d'initialiser un générateur nécessitant beaucoup d'entropie, à partir d'une petite graine ou d'une séquence de graines initiale mal distribuée.

std::seed_seq satisfait les exigences de SeedSequence .

Table des matières

Types imbriqués

Type Définition
result_type std::uint_least32_t

Membres de données

Membre Description
std:: vector < result_type > v la séquence de graines sous-jacente
( objet membre d'exposition uniquement* )

Fonctions membres

construit et initialise l'objet std::seed_seq
(fonction membre publique)
operator=
[supprimé]
std::seed_seq n'est pas assignable
(fonction membre publique)
calcule les valeurs 32 bits uniformément distribuées et sans biais
(fonction membre publique)
obtient le nombre de valeurs 32 bits stockées
(fonction membre publique)
copie toutes les valeurs 32 bits stockées
(fonction membre publique)

Exemple

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

Sortie possible :

4204997637
4246533866
1856049002
1129615051
690460811
1075771511
46783058
3904109078
1534123438
1495905678