random_device — Klasa
Generuje losowe sekwencje z zewnętrznego urządzenia.
class random_device { public: typedef unsigned int result_type; // cosntructor explicit random_device(const std::string& token = ""); // properties static result_type min(); static result_type max(); double entropy() const; // generate result_type operator()(); // no-copy functions random_device(const random_device&) = delete; void operator=(const random_device&) = delete; };
Elementy członkowskie
Uwagi
Klasa opisuje źródło liczby losowe i jest dozwolone, ale nie muszą być niedeterministyczne lub kryptograficznie bezpiecznego Standard C++ ISO.W programie Visual Studio implementacji wartości będące są niedeterministyczne i kryptograficznie zabezpieczyć, ale działa wolniej, niż generatorów utworzone na podstawie aparaty i adapterów aparatu (takie jak mersenne_twister_engine, wysokiej jakości i szybkie aparat wybranego dla większości aplikacji).
random_devicewyniki mogą być równomiernie rozłożone w zakresie zamkniętej [0, 232).
random_devicenie musi powodować połączenie bez blokowania.
Ogólnie rzecz biorąc random_device jest używany do generowania innych generatorów utworzone za pomocą aparatów lub adapterów aparatu.Aby uzyskać więcej informacji, zobacz <random>.
Przykład
Poniższy kod pokazuje podstawowe funkcje tej klasy i przykład wyników.Z powodu niedeterministyczne charakter random_device, losowych wartości wyświetlane w danych wyjściowych sekcji nie będą zgodne wyniki.Jest to normalne i oczekiwanych.
// random_device_engine.cpp
// cl.exe /W4 /nologo /EHsc /MTd
#include <random>
#include <iostream>
using namespace std;
int main()
{
random_device gen;
cout << "entropy == " << gen.entropy() << endl;
cout << "min == " << gen.min() << endl;
cout << "max == " << gen.max() << endl;
cout << "a random value == " << gen() << endl;
cout << "a random value == " << gen() << endl;
cout << "a random value == " << gen() << endl;
}
Dane wyjściowe:
W tym przykładzie jest simplistic i nie językiem ogólne przypadek użycia dla tego generatora.Dla bardziej językiem przykładowy kod, zobacz <random>.
Wymagania
Nagłówek: < losowe >
Przestrzeń nazw: std