/*copyright(c)2016.烟台大学计算机学院
* All rights reserved,
* 文件名称:text.Cpp
* 作者:刘涛
* 完成日期:2016年6月5日
* 版本号:vc++6.0
* 问题描述:在扑克牌游戏中,每次游戏开始都要求把54张牌重新排列一下,
* 称为洗牌。试编写程序将一副扑克牌(用54个整数1~54表示)随机洗好后,
* 顺序输出54张牌的情况。
*/
#include<ctime>
#include<vector>
#include<algorithm>
#include<iterator>
#include<iostream>
using namespace std;
int main()
{
srand(time(NULL));
vector <int> puke;
int i;
for(i=1;i<=54;i++)
puke.push_back(i);
cout<<"before puke is xi_ed:"<<endl;
copy(puke.begin(),puke.end(),ostream_iterator<int>(cout," "));
cout<<endl;
random_shuffle(puke.begin(),puke.end());
cout<<"after puke is xi_ed:"<<endl;
copy(puke.begin(),puke.end(),ostream_iterator<int>(cout," "));
cout<<endl;
return 0;
}
运行结果:
<img src="https://img-blog.csdn.net/20160606185251310?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
random_shuffle()算法将序列中的元素进行乱序。该算法需要序列的起点迭代器和终点迭代器来进行乱序操作。