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

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

set_symmetric_difference 求两个容器的差。

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

   1:  // set_symmetric_difference example
   2:  #include <iostream>     // std::cout
   3:  #include <algorithm>    // std::set_symmetric_difference, std::sort
   4:  #include <vector>       // std::vector
   5:   
   6:  int main () {
   7:    int first[] = {5,10,15,20,25};
   8:    int second[] = {50,40,30,20,10};
   9:    std::vector<int> v(10);                      // 0  0  0  0  0  0  0  0  0  0
  10:    std::vector<int>::iterator it;
  11:   
  12:    std::sort (first,first+5);     //  5 10 15 20 25
  13:    std::sort (second,second+5);   // 10 20 30 40 50
  14:   
  15:    it=std::set_symmetric_difference (first, first+5, second, second+5, v.begin());
  16:                                                 //  5 15 25 30 40 50  0  0  0  0
  17:    v.resize(it-v.begin());                      //  5 15 25 30 40 50
  18:   
  19:    std::cout << "The symmetric difference has " << (v.size()) << " elements:\n";
  20:    for (it=v.begin(); it!=v.end(); ++it)
  21:      std::cout << ' ' << *it;
  22:    std::cout << '\n';
  23:   
  24:    return 0;
  25:  }

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

STL set_difference set_intersection set_union 操作的更多相关文章

  1. 对vector等STL标准容器的排序操作

    [+] STL提供的Sort 算法 所有sort算法介绍 sort 中的比较函数 sort 的稳定性 全排序 局部排序 nth_element 指定元素排序 partition 和stable_par ...

  2. STL - string(典型操作demo)

    1String概念  string是STL的字符串类型,通常用来表示字符串.而在使用string之前,字符串通常是用char*表示的.string与char*都可以用来表示字符串,那么二者有什么区别呢 ...

  3. 对vector等STL标准容器进行排序操作(转!)

    西方有句谚语:不要重复发明轮子! STL几乎封装了所有的数据结构中的算法,从链表到队列,从向量到堆栈,对hash到二叉树,从搜索到排序,从增加到删除......可以说,如果你理解了STL,你会发现你已 ...

  4. 【C++】STL,vector容器操作

    C++内置的数组支持容器的机制,但是它不支持容器抽象的语义.要解决此问题我们自己实现这样的类.在标准C++中,用容器向量(vector)实现.容器向量也是一个类模板.标准库vector类型使用需要的头 ...

  5. C++ - STL - map的基础操作

    STL - map常用方法 map简述 map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,其作用类似于 ...

  6. STL algorithm源代码:stl_algo.h

    <span style="font-size:18px;">// Algorithm implementation -*- C++ -*- // Copyright ( ...

  7. STL——heap的4大操作

    STL的堆操作 STL里面的堆操作一般用到的只有4个:make_heap();.pop_heap();.push_heap();.sort_heap(); 他们的头文件函数是#include < ...

  8. C++ STL模板

    C++中的STL(Standard Template Library)用起来挺方便的,这里我们来做一下总结. 一.set set是STL中一种标准关联容器 (vector,list,string,de ...

  9. ###《Effective STL》--Chapter5

    点击查看Evernote原文. #@author: gr #@date: 2014-09-17 #@email: forgerui@gmail.com Chapter5 算法 Topic 30: 确保 ...

随机推荐

  1. 深入理解计算机系统第二版习题解答CSAPP 2.12

    对于下面的值,写出变量x的C语言表达式.代码应该对任何字长w≥8都能工作.我们给出当x=0x87654321以及w=32时表达式的结果,仅供参考. A.x的最低有效字节,其他位均为0.[0x00000 ...

  2. javascript 获取下一个节点

    下一个节点: nextElementSibling 上一个节点 previousElementSibling <div> <select onchange="alert(t ...

  3. $GLOBALS['HTTP_RAW_POST_DATA']、$_POST和php://input深入探究三者的区别

    $_POST:通过 HTTP POST 方法传递的变量组成的数组.是自动全局变量. $GLOBALS['HTTP_RAW_POST_DATA'] :总是产生 $HTTP_RAW_POST_DATA 变 ...

  4. hasshmap输出value

    import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; pub ...

  5. 工作流引擎Activiti使用总结

    http://www.kafeitu.me/activiti/2012/03/22/workflow-activiti-action.html 1.简单介工作流引擎与Activiti 对于工作流引擎的 ...

  6. vs2010打开vs2012的sln文件

    1.找到**.sln文件,然后选择用记事本打开. 2.最前面找到“Microsoft Visual Studio Solution File, Format Version 12.00  # Visu ...

  7. Apache中关于页面缓存的设置

    http://www.cnblogs.com/yyyyy5101/articles/1899350.html Expires.Cache-Control.Last-Modified.ETag是RFC ...

  8. 基于CAShapeLayer以及UIBezierPath的语音输入效果动画封装

    详情地址 嗯,主要是在简书上写,大家可以关注我的简书,如果有什么更好的建议也可以评论,探讨,加以斧正.

  9. HDU 4422 The Little Girl who Picks Mushrooms(简单题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4422 题目大意:小姑娘背着5个包去山上采蘑菇,每座山上只能用一个背包采集.三个小精灵会要她3个背包,其 ...

  10. [leetcode]最长递增序列

    class Solution { public: int lengthOfLIS(vector<int>& nums) { int n=nums.size(); ) ; vecto ...