C++走向远洋——67(项目二、洗牌)
2024-09-03 15:05:39
*/
* Copyright (c) 2016,烟台大学计算机与控制工程学院
* All rights reserved.
* 文件名:text.cpp
* 作者:常轩
* 微信公众号:Worldhello
* 完成日期:2016年6月9日
* 版本号:V1.0
* 问题描述:洗牌
* 程序输入:无
* 程序输出:见运行结果
*/
#include<iostream>
#include<ctime>
#include<list>
#include<vector>
#include<iterator>
#include<cstdlib>
using namespace std; typedef vector<int> IntVector;
typedef unsigned int VIndex;
void vectorShuffle(IntVector &unshuffled,IntVector &shuffled)
{
VIndex p,size=unshuffled.size();
while(size)
{
p=rand()%size--;
shuffled.push_back(unshuffled[p]);
unshuffled.erase(unshuffled.begin()+p);
}
}
int main()
{
ostream_iterator<int>os(cout," ");
srand(time(NULL));
IntVector c,sc;
for(VIndex i=1;i<=54;i++)
{
c.push_back(i);
}
cout<<"Before Shuffled"<<endl;
copy(c.begin(),c.end(),os);
cout<<endl;
vectorShuffle(c,sc);
cout<<"\nAfter Shuffled"<<endl;
copy(sc.begin(),sc.end(),os);
cout<<endl<<endl;
return 0;
}
运行结果:
最新文章
- Spring4读书笔记(2)- 使用场景
- 【MongoDB】6.关于MongoDB存储文件的 命令执行+代码执行
- [html]head区域编写规范
- js跳转到新页面传参以及接收参数的方法
- 【代码笔记】iOS-点击顶点处,弹出另一个小的界面
- java提高篇(九)-----详解匿名内部类
- oracle 查询谁在用undo
- 实现网页页面跳转的几种方法(meta标签、js实现、php实现)
- nodeJs基础
- EasyUI 扩展自己定义EasyUI校验规则 验证规则(经常使用的)
- Java多线程的信号量
- js实现省市区联动
- [C#]使用控制台获取天气预报
- LINUX下文件编译
- java Servlet文件拷贝的模板代码
- 树莓派3B(2)- 配置多个wifi,自动寻找可用网络
- 【一天一道LeetCode】#118. Pascal&#39;s Triangle
- laravel 常见问题
- Hive记录-Beeline常用操作命令
- 设计模式之命令模式(Command )