c++ STL set_difference set_intersection set_union 操作

 更新时间:2017年03月13日 22:36:02   投稿:mdxy-dxy  
这篇文章主要介绍了c++ STL set_difference set_intersection set_union 操作,需要的朋友可以参考下

以下是STL algorithm的几个函数,使用的条件是有序容器,所以 vector在被sort了之后是可以使用的,set也是可以使用的。

set_difference 这个是求得在第一个容器中有,第二个容器中没有的。set_intersection 求两个容器的交, set_union 求两个容器的并。

set_symmetric_difference 求两个容器的差。

最后使用的时候注意要提前分配好最后的盛放容器,其大小最好是两个操作容器的和,然后需要根据返回的迭代器resize一下,看下面的例子。

// set_symmetric_difference example
 #include <iostream>   // std::cout
 #include <algorithm>  // std::set_symmetric_difference, std::sort
 #include <vector>    // std::vector
  
 int main () {
  int first[] = {5,10,15,20,25};
  int second[] = {50,40,30,20,10};
  std::vector<int> v(10);           // 0 0 0 0 0 0 0 0 0 0
  std::vector<int>::iterator it;
  
  std::sort (first,first+5);   // 5 10 15 20 25
  std::sort (second,second+5);  // 10 20 30 40 50
  
  it=std::set_symmetric_difference (first, first+5, second, second+5, v.begin());
                         // 5 15 25 30 40 50 0 0 0 0
  v.resize(it-v.begin());           // 5 15 25 30 40 50
  
  std::cout << "The symmetric difference has " << (v.size()) << " elements:\n";
  for (it=v.begin(); it!=v.end(); ++it)
   std::cout << ' ' << *it;
  std::cout << '\n';
  
  return 0;
 }

相关文章

  • C++在C语言基础之上增强的几个实用特性总结

    C++在C语言基础之上增强的几个实用特性总结

    这篇文章主要介绍了C++在C语言基础之上增强的几个实用特性总结,包括C++中更强的类型约束以及结构体方面等一些更加高级的特性,需要的朋友可以参考下
    2016-03-03
  • C语言实现病例管理系统

    C语言实现病例管理系统

    这篇文章主要为大家详细介绍了C语言实现病例管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • VC实现五子棋游戏的一个算法示例

    VC实现五子棋游戏的一个算法示例

    这篇文章主要介绍了VC实现五子棋游戏的一个算法示例,对于学习数据结构与算法的朋友有一定的借鉴价值,需要的朋友可以参考下
    2014-08-08
  • Qt中互斥锁QMutex和QMutexLocker的使用

    Qt中互斥锁QMutex和QMutexLocker的使用

    本文主要介绍了Qt中互斥锁QMutex和QMutexLocker的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • C++的深浅拷贝和写时拷贝你了解吗

    C++的深浅拷贝和写时拷贝你了解吗

    这篇文章主要为大家详细介绍了C++的深浅拷贝和写时拷贝,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • C语言栈的表示与实现实例详解

    C语言栈的表示与实现实例详解

    这篇文章主要介绍了C语言栈的表示与实现,对于数据结构与算法的研究有一定的借鉴价值,需要的朋友可以参考下
    2014-07-07
  • 关于C语言多线程pthread库的相关函数说明

    关于C语言多线程pthread库的相关函数说明

    下面小编就为大家带来一篇关于C语言多线程pthread库的相关函数说明。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Matlab绘制中国地图超全教程详解

    Matlab绘制中国地图超全教程详解

    这篇文章主要介绍了如何利用Matlab绘制中国地图,文中的示例代码讲解详细,对我们学习Matlab有一定的帮助,感兴趣的小伙伴可以学习一下
    2022-02-02
  • 学习C和C++的9点经验总结

    学习C和C++的9点经验总结

    本文给大家总结了一下我们在学习C和C++的时候的一些经验和需要注意的事项,希望能给大家一些帮助,少走些弯路
    2015-12-12
  • c++ error:crosses initialization of问题解决分析

    c++ error:crosses initialization of问题解决分析

    这篇文章主要介绍了c++ error:crosses initialization ofde 问题解决分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08

最新评论