当前位置: 首页 > 编程笔记 >

c++ STL set_difference set_intersection set_union 操作

梁马鲁
2023-03-14
本文向大家介绍c++ STL set_difference set_intersection set_union 操作,包括了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;
 }
 类似资料:
  • 主要内容:DirectoryInfo 类,FileInfo 类前面我们介绍了 C# 中文件的读写操作,本节我们来看一下 C# 中有关目录的操作,C# 中允许您使用各种目录和文件相关的类来操作目录和文件,比如 DirectoryInfo 类和 FileInfo 类。 DirectoryInfo 类 DirectoryInfo 类派生自 FileSystemInfo 类,其中提供了各种用于创建、移动、浏览目录和子目录的方法。需要注意的是,该类不能被继承。 下表列

  • 本文向大家介绍C/C++位操作实例总结,包括了C/C++位操作实例总结的使用技巧和注意事项,需要的朋友参考一下 本文详细叙述了C/C++的位操作,这是C/C++程序设计中非常重要的概念。本文实例对于C/C++初学者来说也具有很好的复习与参考价值。具体分析如下: C/C++对位操作有如下方法: 一、位操作运算符(注意:下面几个运算符不改变原来的变量的值,只是获得运算的结果即一个新值) 按位取反:~

  • 本文向大家介绍C#中DataGridView操作技巧,包括了C#中DataGridView操作技巧的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#中DataGridView操作技巧。分享给大家供大家参考。具体分析如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 本文向大家介绍C# FTP操作类分享,包括了C# FTP操作类分享的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C# FTP操作类的具体代码,可进行FTP的上传,下载等其他功能,支持断点续传,供大家参考,具体内容如下 FTPHelper 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 2.3.2 参数操作A(C++) 需求:实现参数服务器参数的增删改查操作。 在 C++ 中实现参数服务器数据的增删改查,可以通过两套 API 实现: ros::NodeHandle ros::param 下面为具体操作演示 1.参数服务器新增(修改)参数 /* 参数服务器操作之新增与修改(二者API一样)_C++实现: 在 roscpp 中提供了两套 API 实现参数操作

  • 本文向大家介绍C# DatagridView常用操作汇总,包括了C# DatagridView常用操作汇总的使用技巧和注意事项,需要的朋友参考一下 本文汇总了C#中DatagridView的常用操作,有助于读者加深对C# DatagridView用法的理解,具体如下: 1、(最基本的技巧)、获取某列中的某行(某单元格)中的内容 2、自定义列     继承 DataGridViewTextBoxCe