C++primer plus第六版课后编程题答案16.7

来源:互联网 发布:原单包淘宝店铺 编辑:程序博客网 时间:2024/06/05 11:34

main167.cpp

#include <iostream>#include <vector>#include <algorithm>//STL算法//我觉得那个矢量会非常大,会不会是我理解错了?//果然是我理解错了,这里是指不能生成相同的数,因为抽过了这个数就会//消失,就像双色球一样using namespace std;static vector<int> Lotto(int a,int b){vector<int> choice;//存放矢量的vectorvector<int> result;//存放抽到的数组for(int i=1;i<=a;i++)choice.push_back(i);//这个就是那个矢量,我还以为矢量是指所有的结果集for(int j=0;j<b;j++)//抽取数字{  random_shuffle(choice.begin(),choice.end());result.push_back(choice[0]);//choice.erase(choice[0]);//删除指定元素,必须用迭代器choice.erase(choice.begin());//保证不会抽到同一元素}return vector<int>(result);}static void output(int n){cout<<n<<"  ";}void main167(){vector<int> winners;winners=Lotto(51,6);//vector<int> winners=Lotto(10,3);//winners=Lotto(51,6);for_each(winners.begin(),winners.end(),output);cin.get();}


0 0