使用C++ random_shuffle排序可行吗

avatar
作者
猴君
阅读量:0

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

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!