- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我需要像这样调用 STL 的 set_union 函数:
set<int> a1, a2;
set_union(a1.begin(), a1.end(), a2.begin(), a2.end(), inserter(a1, a1.begin());
而不是
set_union(a1.begin(), a1.end(), a2.begin(), a2.end(), a1.begin());
为什么会这样?
最佳答案
a1.begin() 根本不是输出迭代器。 inserter(a1,a1.begin()) 返回一个输出迭代器,它将为每个元素调用集合的插入函数。但我什至不确定第一个版本是否正确。您遍历插入新元素的同一个集合。 (!)
既然你已经处理了 set<> 对象,你为什么不简单地写
a1.insert(a2.begin(),a2.end());
?
关于c++ - 为什么在为集合执行 set_union 时需要插入函数调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1542361/
我有以下使用算法 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 可能我理解了一点点并做了一些修改,但是当它很困难时我无法
我是一名优秀的程序员,十分优秀!