random_device – třída
Generuje náhodné pořadí z externího zařízení.
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; };
Členy
Poznámky
Třída popisuje zdroj náhodná čísla a je povoleno ale není nutné být determinizaci nebo kryptograficky zabezpečené podle ISO C++ Standard.V sadě Visual Studio implementace hodnoty vytvořeného jsou determinizaci a kryptograficky zabezpečit, ale pracuje pomaleji než generátory vytvořena na základě moduly a modul adaptéry (například mersenne_twister_engine, vysoce kvalitní a rychlé modulu podle volby pro většinu aplikací).
random_devicevýsledky jsou rovnoměrně rozložen v uzavřené rozsahu: [0, 232).
random_deviceChcete-li mít za následek volání neblokující není zaručena.
Obecně platí random_device se používá k jiné generátory vytvořené pomocí moduly nebo modul adaptéry počáteční hodnoty.Další informace naleznete v tématu <random>.
Příklad
Následující kód ukazuje základní funkce této třídy a příklad výsledky.Vzhledem k determinizaci povaze random_device, náhodných hodnot, které jsou uvedeny v výstupu oddílu nebude odpovídat si výsledky.Toto je normální a očekávaný.
// 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;
}
Výstup:
V tomto příkladu je zneužívající vlastností prohlížeče a nikoli shodovat s obecné případu použití tohoto generátoru.Více reprezentativní příklad kódu naleznete v tématu <random>.
Požadavky
Záhlaví: < náhodné >
Obor názvů: std