C++11: random #1

来源:互联网 发布:淘宝卖家快捷回复短语 编辑:程序博客网 时间:2024/05/19 20:38
#include <random>#include <iostream>#include <vector>#include <ctime>std::vector<unsigned> good_randVec(){        static std::uniform_int_distribution<unsigned> u(0, 9);        static std::default_random_engine e;        std::vector<unsigned> ret;        for (std::size_t i = 0; i < 100; ++i) {                ret.push_back(u(e));        }        return ret;}int main(){        std::uniform_int_distribution<unsigned> u(0, 9);         std::default_random_engine e;        for (std::size_t i = 0; i < 10; ++i) {                std::cout << u(e) << " ";        }        std::cout << "\n";        std::cout << "min: " << e.min() << " max: " << e.max() << std::endl;        std::vector<unsigned> v1(good_randVec());        std::vector<unsigned> v2(good_randVec());        std::cout << ((v1 == v2) ? "equal" : "not equal") << std::endl;        std::default_random_engine e1;        std::default_random_engine e2(2147483646);        std::default_random_engine e3;         e3.seed(32767);        std::default_random_engine e4(32767);        for (std::size_t i = 0; i != 100; ++i) {                if (e1() == e2()) {                        std::cout << "unseeded match at iterationi: " << i                                  << std::endl;                }                if (e3() != e4()) {                        std::cout << "seeded differs at iteration: " << i                                  << std::endl;                }        }        std::default_random_engine e5(std::time(nullptr));        for (std::size_t i = 0; i < 10; ++i) {                std::cout << e5() << " " ;        }        std::cout << std::endl;        return 0;}
// from C++ Primer 5th Section 17.4.1(p.745)// g++ xx.cpp -std=c++11// gcc 4.9.2
0 0
原创粉丝点击