random_shuffle是一個函數,用于將一個序列中的元素進行隨機重排。它可以應用于數組、向量、字符串等容器,使用隨機數生成器對容器中的元素進行重新排列。
random_shuffle的用法如下:
#include <algorithm>
#include <ctime> // 用于生成隨機數種子
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 設置隨機數種子
std::srand(unsigned(std::time(0)));
// 隨機重排容器中的元素
std::random_shuffle(vec.begin(), vec.end());
// 輸出結果
for (const auto& num : vec) {
std::cout << num << " ";
}
return 0;
}
輸出結果可能為:3 1 4 5 2
#include <algorithm>
#include <vector>
#include <random> // 用于生成隨機數種子
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 設置隨機數生成器
std::random_device rd;
std::mt19937 g(rd());
// 隨機重排容器中的元素
std::random_shuffle(vec.begin(), vec.end(), g);
// 輸出結果
for (const auto& num : vec) {
std::cout << num << " ";
}
return 0;
}
輸出結果可能為:4 1 3 5 2
注意:C++11標準中已將random_shuffle標記為已廢棄,建議使用shuffle函數替代。