温馨提示×

使用C++ random_shuffle排序可行吗

c++
小樊
85
2024-07-21 10:16:02
栏目: 编程语言

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函数对数组进行随机排序。请注意,需要包含头文件以使用随机数引擎。

0