1. set_union

    算法set_union可构造S1、S2的并集。此集合内含S1或S2内的每个元素。

    S1、S2及其并集都是以排序区间表示。返回值是一个迭代器。指向输出区间的尾端。

    因为S1和S2内的每一个元素都不需唯一,因此,假设某个值在S1出现n次。在S2出现m次,那么该值再输出区间中会出现max(m,n)次,当中n个来自S1,其余来自S2。在STL
    set容器内。m小于等于1,n小于等于1。

    template <class InputIterator1,classInputIterator2,class OutputIterator>

    OutputIterator set_union(InputIterator1first1,InputIterator1 last1,

    InputIterator2 first2,InputIterator2 last2,

    OutputIterator result)

    {

    while(first1 != last1 && first2 != last2)

    {

    if(*first1 < *first2)

    {

    *result= *first1;

    ++first1;

    }

    elseif (*first2 < *first1)

    {

    *result= *first2;

    ++first2;

    }

    else

    {

    *result= *first1;

    ++first1;

    ++first2;

    }

    ++result;

    }

    return copy(first2,last2,copy(first1,last1,result));

    }

  2. set_intersection

    算法set_intersection可构造S1、S2的交集。此集合内含同一时候出现于S1、S2内的每个元素。S1、S2及其交集都是以排序区间表示。返回值为一个迭代器。指向输出区间的尾端。

    因为S1和S2内的每一个元素都不需唯一。因此。假设某个值在S1出现n次,在S2出现m次,那么该值再输出区间中出现min(m,n)次,而且所有来自S1。在STL
    set容器内,m小于等于1。n小于等于1。

    template <class InputIterator1,classInputIterator2,class OutputIterator>

    OutputIteratorset_intersection(InputIterator1 first1,InputIterator1 last1,

    InputIterator2 first2,InputIterator2 last2,

    OutputIterator result)

    {

    while(first1 != last1 && first2 != last2)

    {

    if(*first1 < *first2)

    {

    //*result= *first1;

    ++first1;

    }

    elseif (*first2 < *first1)

    {

    //*result= *first2;

    ++first2;

    }

    else

    {

    *result= *first1;

    ++first1;

    ++first2;

    ++result;

    }

    //++result;

    }

    //return copy(first2,last2,copy(first1,last1,result));

    }

  3. set_difference

    算法set_difference可构造S1、S2的差集。此集合内含“出现于S1但不出现于S2”的每个元素。S1、S2及其差集都是以排序区间表示。返回值为一个迭代器,指向输出区间的尾端。

    因为S1和S2内的每一个元素都不需唯一,因此假设某个值再S1出现n次,在S2出现m次。那么该值再输出区间中出现max(n-m,0)次,而且所有来自S1。在STL
    set容器内。m小于等于1。n小于等于1。

    template <class InputIterator1,classInputIterator2,class OutputIterator>

    OutputIteratorset_difference(InputIterator1 first1,InputIterator1 last1,

    InputIterator2 first2,InputIterator2 last2,

    OutputIterator result)

    {

    while(first1 != last1 && first2 != last2)

    {

    if(*first1 < *first2)

    {

    *result= *first1;

    ++first1;

    ++result;

    }

    elseif (*first2 < *first1)

    {

    //*result= *first2;

    ++first2;

    }

    else

    {

    //*result= *first1;

    ++first1;

    ++first2;

    //++result;

    }

    //++result;

    }

    //return copy(first2,last2,copy(first1,last1,result));

    return copy(first1,last2,result);

    }

  4. set_symmetric_difference

    算法set_symmetric_difference可构造S1、S2的对称差集。此集合内含“出现于S1但不出现于S2”以及“出现于S2但不出现于S1”的每个元素。S1、S2及其差集都是以排序区间表示。返回值为一个迭代器,指向输出区间的尾端。

    因为S1和S2内的每一个元素都不需唯一。因此假设某个值在S1出现n次,在S2出现m次,那么该值再输出区间中出现|m-n|次。

    假设n>m。输出区间内的最后n-m个元素将由S1复制而来,假设n<m则输出区间内的最后m-n个元素将由S2复制而来。在STL
    set容器内,m小于等于1。n小于等于1。

    template <class InputIterator1,classInputIterator2,class OutputIterator>

    OutputIteratorset_symmetric_difference(InputIterator1 first1,InputIterator1 last1,

    InputIterator2 first2,InputIterator2 last2,

    OutputIterator result)

    {

    while(first1 != last1 && first2 != last2)

    {

    if(*first1 < *first2)

    {

    *result= *first1;

    ++first1;

    ++result;

    }

    elseif (*first2 < *first1)

    {

    *result= *first2;

    ++first2;

    ++result;

    }

    else

    {

    //*result= *first1;

    ++first1;

    ++first2;

    //++result;

    }

    //++result;

    }

    return copy(first2,last2,copy(first1,last1,result));

    //return copy(first1,last2,result);

    }

版权声明:本文博主原创文章,博客,未经同意不得转载。

最新文章

  1. YYModel 源码解读(二)之YYClassInfo.h (2)
  2. IE8下String的Trim()方法失效的解决方案
  3. 20151007kaggle Titanic心得
  4. 消除QQ表情小游戏
  5. oc对象的内存管理
  6. 机器学习实战笔记5(logistic回归)
  7. 【刷题 Python Tip】题目1~5
  8. python的webservice客户端 suds模块使用
  9. CSS3阴影 box-shadow的使用和技巧总结[转]
  10. 深入浅出Hadoop实战开发(HDFS实战图片、MapReduce、HBase实战微博、Hive应用)
  11. 如何使用ArcGIS发布LiDAR 点云
  12. [Usaco2007 Open]Fliptile 翻格子游戏 状压dp
  13. 美团App用户界面分析
  14. JDK设计模式之—动态代理
  15. [SQL]LeetCode595. 大的国家 | Big Countries
  16. ssh远程 和 上传/下载工具
  17. css3之border-radius理解
  18. Python&#160;&#39;xxx&#39;&#160;codec&#160;can&#39;t&#160;decode&#160;byte&#160;xxx常见编码错
  19. C# -- 使用Aspose.Cells创建和读取Excel文件
  20. SpringCloud分布式配置中心所遇问题

热门文章

  1. 好记性不如烂笔头——double
  2. Altium Designer中的粉红色网格和绿色框框
  3. (6)uboot具体解释——关闭缓存和mmu
  4. Web安全之Cookie劫持
  5. wepy小程序实现列表分页上拉加载(2)
  6. @EnableAsync和@Async开始异步任务支持
  7. php 面试题一(看视频的学习量比网上瞎转悠要清晰和明了很多)(看视频做好笔记)(注重复习)
  8. php 发送QQ邮箱邮件
  9. 数学之路-python计算实战(5)-初识numpy以及pypy下执行numpy
  10. Linux system函数返回值