- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章c++ STL set_difference set_intersection set_union 操作由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
以下是STL algorithm的几个函数,使用的条件是有序容器,所以 vector在被sort了之后是可以使用的,set也是可以使用的.
set_difference 这个是求得在第一个容器中有,第二个容器中没有的。set_intersection 求两个容器的交, set_union 求两个容器的并.
set_symmetric_difference 求两个容器的差.
最后使用的时候注意要提前分配好最后的盛放容器,其大小最好是两个操作容器的和,然后需要根据返回的迭代器resize一下,看下面的例子.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
// 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++ STL set_difference set_intersection set_union 操作的文章就讲到这里了,如果你想了解更多关于c++ STL set_difference set_intersection set_union 操作的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我有以下使用算法 STL 中的 set_union() 的 C++ 代码: 9 int first[] = {5, 10, 15, 20, 25}; 10 int second[]
我有两个 vector ,我需要在第三个 vector 中合并它们(不指定第三个 vector 的大小) std::vector a = {"a","b"}; std::vector b = {"d"
我试图找出包含字符串的两个集合的并集,使用 set_union(...)功能。但是,它在 stl_algo.h 中抛出错误ar 行号 4948 - 错误: passing 'const std::__
有两个 list a (4,100); list b (4,200); 我将它们用作集合,因此是经过排序和唯一的: a.sort(); a.unique(); b.sort(); b.unique()
我正在尝试使用 set_union 获取 4 个数组的并集。这是我到目前为止的代码: int setA[5] = {2, 4, 5, 7, 8}; int setB[7] = {1, 2, 3, 4,
这是我之前 post 的延续这告诉我该怎么做很好,但实现它并没有奏效:S。我想要的只是 C++ 算法类中的 set_union(和其他集合操作)来处理我的结构。这是我目前所拥有的。 我的结构: str
我正在尝试将两组合并为一组,但是当我使用最简单的示例时,出现错误:assignment of read-only location '__result.std::_Rb_tree_const_iter
std::set_union 及其同类采用两对迭代器来操作集合。这很棒,因为它是最灵活的事情。然而,他们可以很容易地制作一个额外的便利功能,这对于 80% 的典型用途来说会更加优雅。 例如: temp
这个问题让我困惑了好几个小时,请帮我!第一次调用set_union结果正确,第二次调用结果错误,看代码: std::vector set1{ 1, 2, 3, 4, 5, 6 }; std::vect
我需要像这样调用 STL 的 set_union 函数: set a1, a2; set_union(a1.begin(), a1.end(), a2.begin(), a2.end(), inser
我想我对 C/C++ 中的赋值缺乏一些基本的了解!我有一个函数可以计算两个字符串 vector 之间的集合并集。我这样做的原因是因为算法库的函数 set_union 要求首先对两个 vector 进行
This site声称 set_union 等效于以下代码: template OutputIterator set_union ( InputIterator1 first1, InputIt
当一个或两个输入容器是具有重复对象的多重集时,算法 std:set_union 的返回值是多少? dups 会迷路吗? 让我们假设例如: multiset ms1; ms1.insert(1); ms
我目前正在从事一个涉及集合计算的项目。我正在使用函数 set_union 和 set_intersection 来计算集合的并集和交集。我的变量是: int AunionB[8]; i
当两个数组中有公共(public)元素时,std set_union 是否总是从第一个数组中取出那些公共(public)元素?从下面的代码片段可以看出,它总是从第一个数组中选取共同的元素,但这是有保证
我有两个集合,我正在尝试做一个并集(我在做一个交集时得到同样的错误)。这是错误: error C3892: 'std::_Tree_const_iterator::operator *' : you
我对如何解释下一页中为 set_union 给出的代码感到困惑:http://www.cplusplus.com/reference/algorithm/set_union/ 当函数返回时,算法如何确
我实现了 set_union、set_intersection 和 set_difference 的版本,它们接受一个排序的容器和一个排序的范围(不能在容器内), 并将运算结果写入容器。 templa
以下是STL algorithm的几个函数,使用的条件是有序容器,所以 vector在被sort了之后是可以使用的,set也是可以使用的。 set_difference 这个是求得在第一个容器中有
大家好:)我希望有人能找到解决方案或者我终于找到了^^ 上下文 我是c++的初学者,所以,object, template 和iterator 可能我理解了一点点并做了一些修改,但是当它很困难时我无法
我是一名优秀的程序员,十分优秀!