*/
* 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;
}

运行结果:

最新文章

  1. Spring4读书笔记(2)- 使用场景
  2. 【MongoDB】6.关于MongoDB存储文件的 命令执行+代码执行
  3. [html]head区域编写规范
  4. js跳转到新页面传参以及接收参数的方法
  5. 【代码笔记】iOS-点击顶点处,弹出另一个小的界面
  6. java提高篇(九)-----详解匿名内部类
  7. oracle 查询谁在用undo
  8. 实现网页页面跳转的几种方法(meta标签、js实现、php实现)
  9. nodeJs基础
  10. EasyUI 扩展自己定义EasyUI校验规则 验证规则(经常使用的)
  11. Java多线程的信号量
  12. js实现省市区联动
  13. [C#]使用控制台获取天气预报
  14. LINUX下文件编译
  15. java Servlet文件拷贝的模板代码
  16. 树莓派3B(2)- 配置多个wifi,自动寻找可用网络
  17. 【一天一道LeetCode】#118. Pascal&#39;s Triangle
  18. laravel 常见问题
  19. Hive记录-Beeline常用操作命令
  20. 设计模式之命令模式(Command )

热门文章

  1. debian下通过scp 上传下载文件
  2. 5G时代将至,哪些改变会随之而来?
  3. Linux虚拟机添加硬盘
  4. 移植linux4.14内核到四核Exynos4412开发板
  5. 六、linux-mysql的mysql字符集问题
  6. 74cms_3.5.1 宽字节注入
  7. 实战_1:在Eclipse中新建RCP项目
  8. struts.xml中namespace的配置之浏览器兼容性
  9. Xen入门系列三【Xen 管理工具 xm】
  10. HTML颜色表