std::experimental::shuffle
来自 cppreference.com
< cpp | experimental
定义在头文件 <experimental/algorithm> 中 |
||
template< class RandomIt > void shuffle( RandomIt first, RandomIt last ); |
(库基础 TS v2) | |
使用 每线程随机数引擎 作为随机数生成器,对给定范围内 [
first,
last)
的元素进行重新排序,使得每个可能的排列都有相同的出现概率。
内容 |
[编辑] 参数
first, last | - | 要随机打乱的元素范围 |
-RandomIt 必须满足 ValueSwappable 和 LegacyRandomAccessIterator 的要求。 |
[编辑] 返回值
(无)
[编辑] 复杂度
与 first 和 last 之间的距离线性相关。
[编辑] 示例
运行此代码
#include <experimental/algorithm> #include <iostream> #include <string> int main() { std::string sample{"ABCDEF"}; for (int i = 0; i != 4; ++i) { std::experimental::shuffle(sample.begin(), sample.end()); std::cout << sample << '\n'; } }
可能的输出
DACBFE CDFBAE BDCAFE BAFCED
[编辑] 另请参阅
(直到 C++17)(C++11) |
随机重新排序范围内的元素 (函数模板) |