如题。
以下是一段产生不重复的随机数的代码:
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#include <algorithm>
bool sortIntVector(int v1, int v2);
int main()
{
std::vector<int> v_randInt;
int seed = 9;
int temp;
int i = 0;
while(v_randInt.size() < 20)
{
srand(seed + i);
temp = rand()%100;
if(i%2 == 0)
{
i ++;
continue;
}
i++;
temp += i + 5;
temp = temp%100;
while(find(v_randInt.begin(),v_randInt.end(),temp) < v_randInt.end())
{
temp = rand()%100;
}
v_randInt.push_back(temp);
}
sort( v_randInt.begin(),v_randInt.end(), sortIntVector);
for(std::vector<int>::iterator i = v_randInt.begin(); i < v_randInt.end() ; i++)
printf("%d\n",i[0]);
//system("pause");
return 0;
}
bool sortIntVector(int v1, int v2)
{
return v1 < v2;//升序排列
}
多次执行的结果是一致的:
3
6
12
14
20
23
29
31
37
40
46
55
63
72
78
80
86
89
95
97