集装箱set相关算法
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));
}
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));
}
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);
}
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);
}
版权声明:本文博主原创文章,博客,未经同意不得转载。
集装箱set相关算法的更多相关文章
- 二叉树-你必须要懂!(二叉树相关算法实现-iOS)
这几天详细了解了下二叉树的相关算法,原因是看了唐boy的一篇博客(你会翻转二叉树吗?),还有一篇关于百度的校园招聘面试经历,深刻体会到二叉树的重要性.于是乎,从网上收集并整理了一些关于二叉树的资料,及 ...
- 数据结构(C语言版)顺序栈相关算法的代码实现
这两天完成了栈的顺序存储结构的相关算法,包括初始化.压栈.出栈.取栈顶元素.判断栈是否为空.返回栈长度.栈的遍历.清栈.销毁栈.这次的实现过程有两点收获,总结如下: 一.清楚遍历栈的概念 栈的遍历指的 ...
- [联赛可能考到]图论相关算法——COGS——联赛试题预测
COGS图论相关算法 最小生成树 Kruskal+ufs int ufs(int x) { return f[x] == x ? x : f[x] = ufs(f[x]); } int Kruskal ...
- [java,2017-05-15] 内存回收 (流程、时间、对象、相关算法)
内存回收的流程 java的垃圾回收分为三个区域新生代.老年代. 永久代 一个对象实例化时 先去看伊甸园有没有足够的空间:如果有 不进行垃圾回收 ,对象直接在伊甸园存储:如果伊甸园内存已满,会进行一次m ...
- 【STL学习】堆相关算法详解与C++编程实现(Heap)
转自:https://blog.csdn.net/xiajun07061225/article/details/8553808 堆简介 堆并不是STL的组件,但是经常充当着底层实现结构.比如优先级 ...
- TCP系列39—拥塞控制—2、拥塞相关算法及基础知识
一.拥塞控制的相关算法 早期的TCP协议只有基于窗口的流控(flow control)机制而没有拥塞控制机制,因而易导致网络拥塞.1988年Jacobson针对TCP在网络拥塞控制方面的不足,提出了& ...
- UCI机器学习库和一些相关算法(转载)
UCI机器学习库和一些相关算法 各种机器学习任务的顶级结果(论文)汇总 https://github.com//RedditSota/state-of-the-art-result-for-machi ...
- 采样方法(二)MCMC相关算法介绍及代码实现
采样方法(二)MCMC相关算法介绍及代码实现 2017-12-30 15:32:14 Dark_Scope 阅读数 10509更多 分类专栏: 机器学习 版权声明:本文为博主原创文章,遵循CC 4 ...
- 盘点十大GIS相关算法
1.道格拉斯-普克算法(Douglas–Peucker) 道格拉斯-普克算法(Douglas–Peucker algorithm,亦称为拉默-道格拉斯-普克算法.迭代适应点算法.分裂与合并算法)是将曲 ...
随机推荐
- CSS笔记 - fgm练习 - 三个div变色 - CSS div等分布局
<title>三个div变红</title> <style> *{margin: 0; padding: 0} body{ text-align: center; ...
- 模拟登录QQ推断是否须要验证码
老生常谈的问题了,在模拟登录之前,推断是否须要验证码: https://ssl.ptlogin2.qq.com/check? uin=QQ号码&appid=1003903&js_ver ...
- iOS之StatusBar详解
随便打开手机上的主流APP,我们不难发现它们的状态栏都是跟导航栏保持一致的背景颜色,如下图的微信和instagram: WECHAT.PNG INS.PNG 那么今天我们就来说一下StatusBar这 ...
- MVC中url路由规则
Routing:首先获取视图页面传过来的请求,并接受url路径中的controller和action以及参数数据,根据规则将识别出来的数据传递给某controller中的某个action方法 MapR ...
- 【例题 6-6 UVA - 679】Dropping Balls
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 直接模拟会超时. 根据奇偶的规律.直接判断会往哪里走就好. 每个二叉树的节点.必然是左边和右边走的次数对半分.->奇数左边多一 ...
- ivotal-tc-Server与Tomcat区别
Pivotal-tc-Server之前叫做SpringSource tc Server,包含三个版本分别是:Spring版.标准版和开发版,但其中只有开发版是免费的.比如在STS中包含的版本就是开发板 ...
- 并查集(disjoint set)的实现及应用
这里有一篇十分精彩.生动的 并查集详解 (转): "朋友的朋友就是朋友"⇒ 传递性,建立连通关系 disjoint set,并查集(一种集合),也叫不相交集,同时也是一种树型的数据 ...
- 使用Perl分割文件
使用Perl分割文件 特性 使用换行作为分界 忽略注释行# 分割存入新指定的文件中 待分割的文件test.lst wwdg/prescaler syscfg/test1 syscfg/test2 ua ...
- 制作Kinect体感控制小车教程 <一>
转载请注明出处:http://blog.csdn.net/lxk7280 Kinect体感控制小车 Kine ...
- 【读书笔记与思考】Andrew 机器学习课程笔记
Andrew 机器学习课程笔记 完成 Andrew 的课程结束至今已有一段时间,课程介绍深入浅出,很好的解释了模型的基本原理以及应用.在我看来这是个很好的入门视频,他老人家现在又出了一门 deep l ...