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) |
随机重排范围中的元素 (函数模板) |