#include <cstdlib> #include <iostream> #include <time.h> #include <set> //用于产生m个在0-N范围内的无重复的随机数 using namespace std; void rand_gen(int &m,int &n) { srand(time(0)); //产生随机种子 set<int> s; //使用标准库的集合操作 while(s.size()<m) //集合大小不到m时,往里面添加元素 s.insert(rand()%n); set<int>::iterator i; //添加迭代器,用于集合输出 for(i=s.begin();i!=s.end();++i) { cout<<*i<<endl;//迭代器相当于指针,可以用*元素操作符 } } int main(int argc, char *argv[]) { clock_t start=clock(); double interval; int m=5000; int n=200000; rand_gen(m,n); //用于计算花费了多少时间 clock_t end=clock(); interval=double(end-start)/CLOCKS_PER_SEC; //以毫秒记。所以除以毫秒的单位CLOCKS_PER_SEC结果是秒 cout<<"cost: "<<interval<<"seconds"<<endl; system("PAUSE"); return EXIT_SUCCESS; }