集合容器的集合运算:并、交、差:

#include "stdafx.h"

#include <iostream>

#include <set>

#include <algorithm> //集合运算:并、交、差需要包含该头文件

using namespace std;

structltstr

{

bool operator()(const char* s1,const char* s2) const

{

return strcmp(s1,s2)<0; //由小到大排序

//return strcmp(s1,s2)<0; //由大到小排序

}

};

int_tmain(int argc, _TCHAR* argv[])

{

const int N = 6;

const char* a[N] = {"isomer","ephemeral","prosaic","nugatory","artichoke","serif"};

const char* b[N] = {"flat","this","artichoke","frigate","prosaic","isomer"};

set<const char*,ltstr>A(a,a+N);

set<const char*,ltstr> B(b,b+N);

set<const char*,ltstr>C;

set<const char*,ltstr>D;

cout<<"Set A:";

copy(A.begin(),A.end(),ostream_iterator<const char*>(cout," "));

cout<<endl;

cout<<"Set B:";

copy(B.begin(),B.end(),ostream_iterator<const char*>(cout," "));

cout<<endl;

cout<<"Union: ";

//set_union函数需要#include <algorithm>

set_union(A.begin(),A.end(),B.begin(),B.end(),ostream_iterator<const char*>(cout," "),ltstr());

cout<<endl;

cout<<"Intersection: ";

set_intersection(A.begin(),A.end(),B.begin(),B.end(),ostream_iterator<const char*>(cout," "),ltstr());

cout<<endl;

cout<<"Set C (difference of A and B):";

set_difference(A.begin(),A.end(),B.begin(),B.end(),inserter(C,C.begin()),ltstr());//从A中减去B包含的元素

copy(C.begin(),C.end(),ostream_iterator<const char*>(cout," "));

cout<<endl;

cout<<"Set D (difference of B and A):";

set_difference(B.begin(),B.end(),A.begin(),A.end(),inserter(D,D.begin()),ltstr());//从B中减去A包含的元素

copy(D.begin(),D.end(),ostream_iterator<const char*>(cout," "));

cout<<endl;

return 0;

}

运行结果:

STL中的set集合容器进行集合运算:并、交、差实例的更多相关文章

  1. multiset集合容器的集合运算:并、交、差

    set和multiset的内部通常是采用平衡二叉树来实现.当放入元素时,会按照一定的排序方法自动排序,默认是按照less<>排序规则来排序.这种自动排序的特性加速了元素查找的过程,但问题是 ...

  2. C++ STL中vector(向量容器)使用简单介绍

    原文:http://www.seacha.com/article.php/knowledge/cbase/2013/0903/2205.html C++ vector(向量容器)是一个线性顺序结构.相 ...

  3. STL中map与hash_map容器的选择收藏

    这篇文章来自我今天碰到的一个问题,一个朋友问我使用map和hash_map的效率问题,虽然我也了解一些,但是我不敢直接告诉朋友,因为我怕我说错了,通过我查询一些帖子,我这里做一个总结!内容分别来自al ...

  4. C++——STL中三种顺序容器的简要差别

    C++ STL 提供了3个顺序容器 :vector, deque, list Vector动态数组.支持高速訪问:list双向链表,支持高速插入和删除. vector 中的元素是顺序存放的.所以随机訪 ...

  5. 「STL中的常用函数 容器」

    占个坑,下午在更 二分操作:lower_bound和upper_bound 存图/数列操作:vector容器 全排列:next_permutation和prev_permutation 字符串转数列: ...

  6. C++STL之set集合容器

    set集合容器 set集合容器实现了红黑树(Red-Black Tree)的平衡二叉检索树的数据结构, 在 插入元素时, 它会自动调整二叉树的排列, 把该元素放到适当的位置, 以确保每个子树根节点的键 ...

  7. STL中的set容器的一点总结2

    http://blog.csdn.net/sunshinewave/article/details/8068326 1.关于set C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像 ...

  8. 编程体系结构(03):Java集合容器

    本文源码:GitHub·点这里 || GitEE·点这里 一.集合容器简介 集合容器是Java开发中最基础API模块,通常用来存储运行时动态创建的元素,基本特点如下: 泛型特点,存储任意类型对象: 动 ...

  9. C++中 set(集合容器)的用法

    set集合容器: 实现了红黑树(Red-Black Tree)的平衡二叉检索树的数据结构,在插入元素时, 它会自动调整二叉树的排列,把该元素放到适当的位置,以确保每个子树根节点的键值大于左子树所有节点 ...

随机推荐

  1. qt model/view 架构基础介绍之QTableWidget

    # -*- coding: utf-8 -*- # python:2.x #说明:QTreeWidget用于展示树型结构,也就是层次结构同前面说的 QListWidget 类似,这个类需要同另外一个辅 ...

  2. How to check for and disable Java in OS X

    Java used to be deeply embedded in OS X, but in recent versions of the OS it's an optional install. ...

  3. Spark常用函数讲解之Action操作

    摘要: RDD:弹性分布式数据集,是一种特殊集合 ‚ 支持多种来源 ‚ 有容错机制 ‚ 可以被缓存 ‚ 支持并行操作,一个RDD代表一个分区里的数据集RDD有两种操作算子:         Trans ...

  4. Bin & Jing in wonderland(概率,组合数学)

    Problem 2103 Bin & Jing in wonderland Accept: 201    Submit: 1048 Time Limit: 1000 mSec    Memor ...

  5. 练习使用jquery.并将验证强度的功能加到注册页面中

  6. 百度地图API提示"230错误 APP Scode校验失败"

    笔者近2天在 Android Studio上玩了一下百度地图,碰到了常见的"230错误 APP Scode校验失败",下面我来介绍一下具体的解决办法. 1.在andriodstud ...

  7. Java学习——多态

    多态:可以理解为事物存在的多种体现形态. 人:男人,女人 动物:猫,狗 猫 x = new 猫(); 动物 x = new 猫(); 1,多态的体现 父类的引用指向了自己的子类对象. 父类的引用也可以 ...

  8. ext.net中ComboBox空间实现模糊查询

    ComboBox中的属性添加Mode="Local"可以实现第一个字的模糊查询但是搜索中间的字无法实现 现提供一下方法使用正则表达式实现全模糊查询 <ext:ComboBox ...

  9. Visual Studio .NET、.NET Framework和C#之间的联系

    Visual Studio .NET是一种集成开发环境(IDE),它包含3种高级程序设计语言,C#就是其中的一种:Visual Studio .NET之所以能把这三种语言有机结合起来并具有与平台无关的 ...

  10. java集合之Map_keySet_entrySet

    keySet()的使用:该方法返回的是一个key对象的Set<E>集合,通过该set集合的对象调用iterator方法返回一个迭代器,通过该迭代器可访问到set集合里面的key 再调用Ha ...