# std::mergeable

< cpp‎ | iterator

定义于头文件 `<iterator>` |  |
template< class I1, class I2, class Out, class R = ranges::less, class P1 = std::identity, class P2 = std::identity > concept mergeable = std::input_iterator<I1> && std::input_iterator<I2> && std::weakly_incrementable<Out> && std::indirectly_copyable<I1, Out> && std::indirectly_copyable<I2, Out> && std::indirect_strict_weak_order<R, std::projected<I1, P1>, std::projected<I2, P2>>; |  | (C++20 起)

`mergeable` 概念指定按照 `R` 所施加的严格弱序归并二个输入范围到单个输出范围的算法的要求。

### 语义要求

`mergeable` 仅若其所蕴含的所有概念均被实现才得以实现。

### 参阅

ranges::merge (C++20) | 归并二个已排序范围 (niebloid)
ranges::set_union (C++20) | 计算两个集合的并集 (niebloid)
ranges::set_intersection (C++20) | 计算两个集合的交集 (niebloid)
ranges::set_difference (C++20) | 计算两个集合的差集 (niebloid)
ranges::set_symmetric_difference (C++20) | 计算两个集合的对称差 (niebloid)