温馨提示×

怎样在C++中实现自定义shuffle

c++
小樊
101
2024-07-13 04:37:26
栏目: 编程语言

要在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函数的效果。

0