要在C++中實現自定義的shuffle函數,你可以借助C++標準庫中的隨機數生成器和算法來實現。以下是一個示例代碼:
#include <iostream>
#include <vector>
#include <algorithm>
#include <random>
// 自定義shuffle函數
template <typename T>
void custom_shuffle(std::vector<T> &vec) {
std::random_device rd;
std::mt19937 g(rd());
std::shuffle(vec.begin(), vec.end(), g);
}
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
std::cout << "Before shuffle: ";
for (const auto &num : vec) {
std::cout << num << " ";
}
std::cout << std::endl;
custom_shuffle(vec);
std::cout << "After shuffle: ";
for (const auto &num : vec) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
在這個示例代碼中,我們定義了一個自定義的shuffle函數custom_shuffle
,它接受一個vector作為參數,并使用std::shuffle函數來打亂vector中元素的順序。我們使用std::random_device和std::mt19937來生成隨機數生成器,并將其傳遞給std::shuffle函數來確保每次打亂的結果都是隨機的。
在main函數中,我們創建一個包含1到5的整數的vector,并調用custom_shuffle函數來打亂vector中元素的順序。最后,我們打印出打亂前后vector的元素順序來驗證自定義的shuffle函數的效果。