STL实现的一个随机数算法

上课感觉老师写的这个很有意思记录一下,关于random_shuffle()可以参考https://blog.csdn.net/lihaidong1991/article/details/79389648

#include <iostream>
#include <algorithm>
#include <vector>
#include <numeric>
#include <stdlib.h>
#include <conio.h>
#include <iterator>
#include <time.h>

using namespace std;

class myrand
{
public:
    int operator()(int n)
    {
        srand(time(NULL));
        return rand()%n;
    }
};

int main()
{
    vector<int> v;
    for(int i=1;i<48;i++)
        v.push_back(i);
        myrand a;
        random_shuffle(v.begin(),v.end(),a);    //用random_shuffle()算法打乱元素排列顺序
    //copy(v.begin(),v.end(),ostream_iterator<int>(cout,"\t"));
    int in = 0;
    while(1)
    {
        switch(in)
        {
        case 0 :
            system("cls");
            myrand a;
            random_shuffle(v.begin(),v.end(),a);
            cout<<v[23]<<endl;
            break;
        default:
            break;
        }


        if(kbhit())
        {
            char c;
            c = getch();
            if(c=='O')
                break;
            if(c=='P')
                in = 2;
            if(c=='G')
                in = 0;
        }
    }
    return 0;
}

 


版权声明:本文为qq_41282102原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。