Sdílet prostřednictvím


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

random_device::random_device

random_device::entropy

random_device::operator()

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

Viz také

Referenční dokumentace

<random>