std::experimental::shuffle
来自 cppreference.cn
定义于头文件 <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) |
随机地重排一个范围中的元素 (函数模板) |