1#ifndef MSTL_CORE_ALGORITHM_SET_HPP__
2#define MSTL_CORE_ALGORITHM_SET_HPP__
40template <
typename Iterator1,
typename Iterator2,
typename Iterator3,
42constexpr Iterator3
set_union(Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator2 last2, Iterator3 result) {
43 while (first1 != last1 && first2 != last2) {
44 if (*first1 < *first2) {
47 }
else if (*first2 < *first1) {
74template <
typename Iterator1,
typename Iterator2,
typename Iterator3,
77 Iterator2 first2, Iterator2 last2, Iterator3 result) {
78 while (first1 != last1 && first2 != last2) {
79 if (*first1 < *first2) {
81 }
else if (*first2 < first1) {
107template <
typename Iterator1,
typename Iterator2,
typename Iterator3,
110 Iterator2 first2, Iterator2 last2, Iterator3 result) {
111 while (first1 != last1 && first2 != last2) {
112 if (*first1 < *first2) {
116 }
else if (*first2 < first1) {
122 return _MSTL copy(first1, last1, result);
141template <
typename Iterator1,
typename Iterator2,
typename Iterator3,
144 Iterator2 first2, Iterator2 last2, Iterator3 result) {
145 while (first1 != last1 && first2 != last2) {
146 if (*first1 < *first2) {
150 }
else if (*first2 < first1) {
MSTL_INLINE17 constexpr bool is_ranges_fwd_iter_v
检查是否为范围前向迭代器
#define _MSTL
全局命名空间MSTL前缀
#define MSTL_END_NAMESPACE__
结束全局命名空间MSTL
#define MSTL_BEGIN_NAMESPACE__
开始全局命名空间MSTL
constexpr Iterator3 set_symmetric_difference(Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator2 last2, Iterator3 result)
计算两个已排序范围的对称差集
constexpr Iterator3 set_intersection(Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator2 last2, Iterator3 result)
计算两个已排序范围的交集
constexpr Iterator3 set_difference(Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator2 last2, Iterator3 result)
计算两个已排序范围的差集
constexpr Iterator3 set_union(Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator2 last2, Iterator3 result)
计算两个已排序范围的并集
constexpr Iterator2 copy(Iterator1 first, Iterator1 last, Iterator2 result)
复制范围元素
typename enable_if< Test, T >::type enable_if_t
enable_if的便捷别名