C++ random_shuffle()函数用法详解

2024-03-12

random_shuffle()函数用于随机重排指定范围内的元素。

函数定义:

template <class RandomAccessIterator>
void random_shuffle(RandomAccessIterator first, RandomAccessIterator last);

参数说明:

  • RandomAccessIterator:要重排的元素范围的起始迭代器。
  • first:要重排的元素范围的起始位置。
  • last:要重排的元素范围的结束位置,不包括该位置的元素。

使用示例:

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

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};
    
    // 重排整个向量
    std::random_shuffle(vec.begin(), vec.end());
    
    // 输出重排后的结果
    for (auto num : vec) {
        std::cout << num << " ";
    }
    
    return 0;
}

输出结果:

4 3 1 2 5

random_shuffle()函数会将指定范围内的元素进行随机重排。重排的结果每次运行都可能不同。在上面的示例中,输出结果就是对原向量{1, 2, 3, 4, 5}进行随机重排的结果。

需要注意的是,random_shuffle()函数只适用于随机访问迭代器(RandomAccessIterator),如向量(vector)和数组(array)。对于其他类型的容器,可以使用shuffle()函数进行类似的操作。