MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
集合算法

MSTL集合算法的实现 更多...

函数

template<typename Iterator1, typename Iterator2, typename Iterator3, enable_if_t< is_ranges_fwd_iter_v< Iterator1 > &&is_ranges_fwd_iter_v< Iterator2 > &&is_ranges_fwd_iter_v< Iterator3 >, int > = 0>
constexpr Iterator3 set_union (Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator2 last2, Iterator3 result)
 计算两个已排序范围的并集
template<typename Iterator1, typename Iterator2, typename Iterator3, enable_if_t< is_ranges_fwd_iter_v< Iterator1 > &&is_ranges_fwd_iter_v< Iterator2 > &&is_ranges_fwd_iter_v< Iterator3 >, int > = 0>
constexpr Iterator3 set_intersection (Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator2 last2, Iterator3 result)
 计算两个已排序范围的交集
template<typename Iterator1, typename Iterator2, typename Iterator3, enable_if_t< is_ranges_fwd_iter_v< Iterator1 > &&is_ranges_fwd_iter_v< Iterator2 > &&is_ranges_fwd_iter_v< Iterator3 >, int > = 0>
constexpr Iterator3 set_difference (Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator2 last2, Iterator3 result)
 计算两个已排序范围的差集
template<typename Iterator1, typename Iterator2, typename Iterator3, enable_if_t< is_ranges_fwd_iter_v< Iterator1 > &&is_ranges_fwd_iter_v< Iterator2 > &&is_ranges_fwd_iter_v< Iterator3 >, int > = 0>
constexpr Iterator3 set_symmetric_difference (Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator2 last2, Iterator3 result)
 计算两个已排序范围的对称差集

详细描述

MSTL集合算法的实现

函数说明

◆ set_difference()

template<typename Iterator1, typename Iterator2, typename Iterator3, enable_if_t< is_ranges_fwd_iter_v< Iterator1 > &&is_ranges_fwd_iter_v< Iterator2 > &&is_ranges_fwd_iter_v< Iterator3 >, int > = 0>
Iterator3 set_difference ( Iterator1 first1,
Iterator1 last1,
Iterator2 first2,
Iterator2 last2,
Iterator3 result )
constexpr

计算两个已排序范围的差集

模板参数
Iterator1第一个输入迭代器类型
Iterator2第二个输入迭代器类型
Iterator3输出迭代器类型
参数
first1第一个范围起始
last1第一个范围结束
first2第二个范围起始
last2第二个范围结束
result输出范围起始
返回
输出范围结束迭代器

计算两个已排序范围 [first1, last1) 和 [first2, last2) 的差集。 结果包含出现在第一个范围但不出现在第二个范围中的元素。

在文件 algorithm/set.hpp109 行定义.

引用了 _MSTL , 以及 copy().

◆ set_intersection()

template<typename Iterator1, typename Iterator2, typename Iterator3, enable_if_t< is_ranges_fwd_iter_v< Iterator1 > &&is_ranges_fwd_iter_v< Iterator2 > &&is_ranges_fwd_iter_v< Iterator3 >, int > = 0>
Iterator3 set_intersection ( Iterator1 first1,
Iterator1 last1,
Iterator2 first2,
Iterator2 last2,
Iterator3 result )
constexpr

计算两个已排序范围的交集

模板参数
Iterator1第一个输入迭代器类型
Iterator2第二个输入迭代器类型
Iterator3输出迭代器类型
参数
first1第一个范围起始
last1第一个范围结束
first2第二个范围起始
last2第二个范围结束
result输出范围起始
返回
输出范围结束迭代器

计算两个已排序范围 [first1, last1) 和 [first2, last2) 的交集。 结果包含同时出现在两个输入范围中的元素。

在文件 algorithm/set.hpp76 行定义.

◆ set_symmetric_difference()

template<typename Iterator1, typename Iterator2, typename Iterator3, enable_if_t< is_ranges_fwd_iter_v< Iterator1 > &&is_ranges_fwd_iter_v< Iterator2 > &&is_ranges_fwd_iter_v< Iterator3 >, int > = 0>
Iterator3 set_symmetric_difference ( Iterator1 first1,
Iterator1 last1,
Iterator2 first2,
Iterator2 last2,
Iterator3 result )
constexpr

计算两个已排序范围的对称差集

模板参数
Iterator1第一个输入迭代器类型
Iterator2第二个输入迭代器类型
Iterator3输出迭代器类型
参数
first1第一个范围起始
last1第一个范围结束
first2第二个范围起始
last2第二个范围结束
result输出范围起始
返回
输出范围结束迭代器

计算两个已排序范围 [first1, last1) 和 [first2, last2) 的对称差集。 结果包含出现在任一输入范围但不同时出现在两个范围中的元素。 即:并集减去交集。

在文件 algorithm/set.hpp143 行定义.

引用了 _MSTL , 以及 copy().

◆ set_union()

template<typename Iterator1, typename Iterator2, typename Iterator3, enable_if_t< is_ranges_fwd_iter_v< Iterator1 > &&is_ranges_fwd_iter_v< Iterator2 > &&is_ranges_fwd_iter_v< Iterator3 >, int > = 0>
Iterator3 set_union ( Iterator1 first1,
Iterator1 last1,
Iterator2 first2,
Iterator2 last2,
Iterator3 result )
constexpr

计算两个已排序范围的并集

模板参数
Iterator1第一个输入迭代器类型
Iterator2第二个输入迭代器类型
Iterator3输出迭代器类型
参数
first1第一个范围起始
last1第一个范围结束
first2第二个范围起始
last2第二个范围结束
result输出范围起始
返回
输出范围结束迭代器

计算两个已排序范围 [first1, last1) 和 [first2, last2) 的并集。 结果包含所有出现在任一输入范围中的元素,重复元素只出现一次。

前提条件:

  1. 两个输入范围都已按升序排序
  2. 输出范围不与输入范围重叠

在文件 algorithm/set.hpp42 行定义.

引用了 _MSTL , 以及 copy().