📅  最后修改于: 2023-12-03 14:39:50.714000             🧑  作者: Mango
在 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
中的元素随机重排,并将结果输出打印。