C++中的random_shuffle函數已經在C++11標準中被棄用,并且在C++17標準中被移除。取而代之的是std::shuffle函數。使用std::shuffle函數可以對指定范圍內的元素進行隨機排序,但不再像random_shuffle函數那樣接受序列作為參數。在使用std::shuffle函數時,需要自己提供一個用于生成隨機數的隨機數引擎,可以使用std::default_random_engine或者自定義的其他類型的隨機數引擎。
下面是一個使用std::shuffle函數對數組進行隨機排序的示例:
#include <iostream>
#include <algorithm>
#include <random>
int main() {
int arr[] = {1, 2, 3, 4, 5};
// 使用默認的隨機數引擎
std::default_random_engine rng(std::random_device{}());
// 對數組進行隨機排序
std::shuffle(std::begin(arr), std::end(arr), rng);
// 輸出隨機排序后的數組
for (int num : arr) {
std::cout << num << " ";
}
return 0;
}
在上面的示例中,我們使用std::default_random_engine作為隨機數引擎,通過std::shuffle函數對數組進行隨機排序。請注意,需要包含