Export (0) Print
Expand All
1 out of 2 rated this helpful - Rate this topic

random_device Class

Generates a random sequence from an external device.

class random_device {
public:
    typedef unsigned int result_type;
    explicit random_device(const std::string& token = /* implementation defined */);
    result_type min() const;
    result_type max() const;
    double entropy() const;
    result_type operator()();
private:
    random_device(const random_device&) = delete;
    void operator=(const random_device&) = delete;
    };

The class describes a source of random numbers, preferably from a non-deterministic external device. In this implementation the values produced by default are non-deterministic and cryptographically secure. They are uniformly distributed in the closed range [0, 232).

The following code demonstrates basic use of this class and example results.

// random_device_engine.cpp 
// cl.exe /W4 /nologo /EHsc /MTd 
#include <random> 
#include <iostream> 
using namespace std;

int main() 
{ 
    random_device engine; 
 
    cout << "entropy == " << engine.entropy() << endl; 
    cout << "min == " << engine.min() << endl; 
    cout << "max == " << engine.max() << endl; 
 
    cout << "a random value == " << engine() << endl; 
    cout << "a random value == " << engine() << endl; 
    cout << "a random value == " << engine() << endl; 
 
    return (0); 
} 
 
entropy == 32
min == 0
max == 4294967295
a random value == 1394551403
a random value == 2932543967
a random value == 2431218048

Header: <random>

Namespace: std

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.