|
MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
|
MSTL排列算法的实现 更多...
函数 | |
| template<typename Iterator1, typename Iterator2, typename BinaryPred, enable_if_t< is_ranges_bid_iter_v< Iterator1 > &&is_ranges_bid_iter_v< Iterator2 >, int > = 0> | |
| constexpr bool | is_permutation (Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator2 last2, BinaryPred pred) |
| 检查两个序列是否为排列关系 | |
| template<typename Iterator1, typename Iterator2> | |
| constexpr bool | is_permutation (Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator2 last2) |
| 检查两个序列是否为排列关系 | |
| template<typename Iterator, typename Compare, enable_if_t< is_ranges_bid_iter_v< Iterator >, int > = 0> | |
| constexpr bool | next_permutation (Iterator first, Iterator last, Compare comp) |
| 生成下一个字典序排列 | |
| template<typename Iterator> | |
| constexpr bool | next_permutation (Iterator first, Iterator last) |
| 生成下一个字典序排列 | |
| template<typename Iterator, typename Compare, enable_if_t< is_ranges_bid_iter_v< Iterator >, int > = 0> | |
| constexpr bool | prev_permutation (Iterator first, Iterator last, Compare comp) |
| 生成上一个字典序排列 | |
| template<typename Iterator> | |
| constexpr bool | prev_permutation (Iterator first, Iterator last) |
| 生成上一个字典序排列 | |
MSTL排列算法的实现
|
constexpr |
检查两个序列是否为排列关系
| Iterator1 | 第一个迭代器类型 |
| Iterator2 | 第二个迭代器类型 |
| first1 | 第一个范围起始 |
| last1 | 第一个范围结束 |
| first2 | 第二个范围起始 |
| last2 | 第二个范围结束 |
在文件 permutation.hpp 第 87 行定义.
引用了 _MSTL , 以及 is_permutation().
|
constexpr |
检查两个序列是否为排列关系
| Iterator1 | 第一个迭代器类型 |
| Iterator2 | 第二个迭代器类型 |
| BinaryPred | 二元谓词类型 |
| first1 | 第一个范围起始 |
| last1 | 第一个范围结束 |
| first2 | 第二个范围起始 |
| last2 | 第二个范围结束 |
| pred | 相等性谓词 |
检查两个范围是否包含相同的元素(忽略顺序),但每个元素出现的次数必须相同。 算法首先检查长度是否相等,然后:
在文件 permutation.hpp 第 41 行定义.
引用了 _MSTL , 以及 distance().
被这些函数引用 is_permutation().
|
constexpr |
生成下一个字典序排列
| Iterator | 迭代器类型 |
| first | 范围起始 |
| last | 范围结束 |
在文件 permutation.hpp 第 142 行定义.
引用了 _MSTL , 以及 next_permutation().
|
constexpr |
生成下一个字典序排列
| Iterator | 迭代器类型 |
| Compare | 比较函数类型 |
| first | 范围起始 |
| last | 范围结束 |
| comp | 比较函数对象 |
将范围 [first, last) 变换为下一个字典序排列。 算法步骤(已知排列 P):
如果已经是最后一个排列(完全降序),则变换为第一个排列(完全升序)并返回false。
在文件 permutation.hpp 第 110 行定义.
引用了 _MSTL, iter_swap() , 以及 reverse().
被这些函数引用 next_permutation().
|
constexpr |
生成上一个字典序排列
| Iterator | 迭代器类型 |
| first | 范围起始 |
| last | 范围结束 |
在文件 permutation.hpp 第 197 行定义.
引用了 _MSTL , 以及 prev_permutation().
|
constexpr |
生成上一个字典序排列
| Iterator | 迭代器类型 |
| Compare | 比较函数类型 |
| first | 范围起始 |
| last | 范围结束 |
| comp | 比较函数对象 |
将范围 [first, last) 变换为上一个字典序排列。 算法步骤(已知排列 P):
如果已经是第一个排列(完全升序),则变换为最后一个排列(完全降序)并返回false。
在文件 permutation.hpp 第 165 行定义.
引用了 _MSTL, iter_swap() , 以及 reverse().
被这些函数引用 prev_permutation().