随机生成num个数,用set

#include <iostream>
#include <set>
#include <time.h>

using namespace std;

void getallnum(int *a, int MIN, int MAX, int num)
{
	int i;
	set<int> m;
	set<int>::iterator it;
	
	srand(time(NULL));	//如果种子(即括号里的time(NULL))为数字,每次生成的数都会跟上一次的相同。
	while(m.size() < num)
	{
		m.insert(rand()%(MAX - MIN) + MIN);
	}
	
	i = 0;
	for(it=m.begin(); it!=m.end(); it++)
	{
		a[i++] = *it;
	}
}

void print(int *a, int num)
{
	int i;
	for(i=0; i<num; i++)
		cout<<a[i]<<"	";
	cout<<endl;
}

int main(void)
{
	const int MIN = 10;		//生成的数最小为MIN
	const int MAX = 100;	//生成的数最大为MAX
	const int num = 20;		//生成20个数
	int a[num] = {0};
	getallnum(a, MIN, MAX, num);
	print(a, num);
	return 0;
}

你可能感兴趣的:(set,STL,随机生成数)