C++17中已經棄用了std::random_shuffle
函數,推薦使用std::shuffle
函數作為替代方法。std::shuffle
函數提供了更好的隨機性和靈活性,并且更易于使用。
以下是使用std::shuffle
函數來替代std::random_shuffle
函數的示例代碼:
#include <iostream>
#include <vector>
#include <algorithm>
#include <random>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 設置隨機數生成器
std::random_device rd;
std::mt19937 g(rd());
// 使用std::shuffle來打亂順序
std::shuffle(vec.begin(), vec.end(), g);
// 打印打亂后的順序
for (int i : vec) {
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
在上面的示例中,我們首先設置了一個隨機數生成器g
,然后使用std::shuffle
函數來打亂vec
中元素的順序。最后,我們打印出打亂后的順序。
通過使用std::shuffle
函數,我們可以更加方便地實現打亂順序的功能,并且提供了更好的隨機性。