本文將為您講述(也算是記錄),如何生成一個隨機的不重復的數組(也可以說是列表),當然所要填充的數都是整數。
下面來看下怎麼實現吧:

1.首先創建數組對象a[],當然根據個人需要還可以用double或其他類型的數組。
2.給數組賦初值,代碼中是for循環直接給a[]中各個元素分別賦予了1~1000的整數值。
3.使用random_shuffle高斯隨機將數組中的元素打亂順序,這樣就生成了隨機數組;如果你想更亂,可以多次調用random_shuffle進行操作。
4.Show出隨機數組,查看效果。
問題:如果我想要生成可變長度的隨機數列又該怎麼辦呢?如下方法是否可行呢?
int main()
{
int* a = null;
a = new int[1000];
for(int i=0;i<1000;i++)
{
a[i] = i;
}
int* a_begin = a;
int* a_end = a + sizeof(a)/sizeof(int);
random_shuffle(a_begin,a_end);
for(int j=0; j<1000; j++)
{
cout<<a[j]<<"\t";
}
getchar();
return 0;
}
注:如上代碼有興趣的盆友們請盡情嘗試吧,不用怕小伙伴們都驚呆了!
Solution:要生成可變長度的隨機數列,正確可行的方案又是什麼呢?

1.首先創建vector<>對象a,當然根據個人需要還可以用double或其他類型。
2.for循環插入1000個元素,數值范圍是1~1000。
3.使用random_shuffle高斯隨機將數組中的元素打亂順序,這樣就生成了隨機數組;如果你想更亂,可以多次調用random_shuffle進行操作。
4.Show出隨機數組,查看效果。
5.結束時注意清空vector<>。