📜  C++ STL-algorithm.shuffle()函数(1)

📅  最后修改于: 2023-12-03 14:39:50.714000             🧑  作者: Mango

C++ STL-algorithm.shuffle()函数

在 C++ STL 中,shuffle() 是一个随机重排元素的函数。 该函数可以用来随机重排容器中的元素,具有良好的随机性和平均性质,适用于许多需要随机打乱某些元素的场景。

语法

以下是 shuffle() 函数的语法:

template <class RandomAccessIterator>
void shuffle (RandomAccessIterator first, RandomAccessIterator last,RandomFunc& rand)
参数

在上述语法中,

  • first:迭代器,指向要重排的第一个元素。
  • last:迭代器,指向要重排的最后一个元素。
  • rand:可调用对象,产生随机值。如果未提供此参数,则对CFRNG(硬件随机数服务)进行调用。
返回值

shuffle() 函数没有返回值。

示例

以下是使用 shuffle() 函数的示例:

#include <iostream>
#include <algorithm>
#include <vector>

int main()
{
    std::vector<int> v = { 1, 2, 3, 4, 5, 6 };

    std::random_device rd;
    std::mt19937 g(rd()); //随机数发生器
    std::shuffle(v.begin(), v.end(), g);

    std::cout << "Shuffled elements: ";
    for (int& i : v) {
        std::cout << i << ' ';
    }
    std::cout << "\n";

    return 0;
}

以上代码将 vector 中的元素随机重排,并将结果输出打印。