- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有如下代码:
typedef std::set<std::string> set_of_strings;
set_of_strings s1, s2, result1;
some_func()
{
s1.insert("1-2");
s1.insert("1-1");
s1.insert("3-4");
s2.insert("1-2");
s2.insert("1-3");
s2.insert("3-4");
set_of_strings::iterator s1_begin = s1.begin();
set_of_strings::iterator s1_end = s1.end();
set_of_strings::iterator s2_begin = s2.begin();
set_of_strings::iterator s2_end = s2.end();
set_of_strings::iterator result_begin = result1.begin();
td::insert_iterator<set_of_strings> result_inserter = std::inserter(result1, result_begin);
set_difference(s1_begin, s1_end,s2_begin, s2_end,result_inserter); //This is the problem line
}
我得到的编译错误是overloading ambiguity std::copy(....
问题是 set_difference
返回类似 return copy(first1,last1,result);
请查看here对于 set_difference 的算法。
set_difference 返回如下:
copy(..)
如果是std::copy
就不会有任何问题。
我尝试将我的语句放在如下的 block 中:
{
using namespace std;
set_difference(s1_begin, s1_end,s2_begin, s2_end,result_inserter);
}
但这行不通。我知道问题出在我们为自己的目的编写并在许多地方使用的复制函数。这里我想使用 std::copy
。谁能帮忙。
最佳答案
如果您编写了自己的复制函数,编译器可以在与 std::copy
相同的范围内看到它,并且它是一个可能的候选者,那么肯定会导致歧义。
没有你可以设置的魔法标志让它使用 std::copy
,但我认为如果你把你自己的拷贝放在一个命名空间中并且不 使用
那个命名空间,编译器将无法找到它并退回到std::copy
。也就是说,我认为我无法理解您想要创建一个适用于集合迭代器的替代 copy
的情况,如果您编写了一个通用的,它可能不应该被称为 copy因为它会导致像这样的歧义错误无穷无尽。
关于c++ - c++ 中的错误?-c++ 中的 set_difference 不返回 std::copy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8652311/
我试图找出以下两组之间的区别: A = {(0,0), (0,1), (1,0), (1,1), (2,2)} B = {(0,0), (0,1), (1,0), (1,1)} 我期待的答案是 A -
在任务中有人说有必要从数组中获取最大元素的“值”。然后将它与第二个数组进行比较,并排除重复项。 任务中需要在vector中使用partial_sort_copy,以及set_difference。 问
set_difference算法需要以下内容 The elements in the ranges shall already be ordered according to this same cr
我想问一下是否可以提供一个示例,说明如何使用 set_difference 找出 map 的集合和键之间的区别 我知道另一个问题std::set_difference is it possible t
我对 中的 set_differences 函数有一个奇怪的问题 header 。我试图逐行读取两个文本文件,并将每一行放入相应的集合中。由于某种原因,set-difference 没有检测到两组之
std::set tradedSymbolSet; //.. // tradedSymbols is filled //.. std::set symbols; //... // symbols is
所以我们得到了一组新的字符串,我们有一个作为映射键。我们想用一种方式 set_difference(注意 - 不是 set_symmetric_difference)。所以目前我有这样丑陋的代码:
我正在尝试调用 set_difference 函数,并将结果放在 std::list 中。理论上,可以在任何排序的容器上执行此操作,对吧? list v; list l1; list
我想知道标准库中是否有任何工具可以同时计算两个排序范围之间的交集和差集。带有以下签名的东西: template Output3 decompose_sets (Input1 first1, Inpu
我实现了 set_union、set_intersection 和 set_difference 的版本,它们接受一个排序的容器和一个排序的范围(不能在容器内), 并将运算结果写入容器。 templa
目前我正在获取两个 map 的集合差异,然后遍历生成的 map 。 理想情况下,我想创建一个差异 vector 而不是 map 。这样我可以更有效地进行迭代。 typedef std::map Reg
以下是STL algorithm的几个函数,使用的条件是有序容器,所以 vector在被sort了之后是可以使用的,set也是可以使用的。 set_difference 这个是求得在第一个容器中有
我在从 set_difference() 获得预期结果时遇到了一些问题.我以为我正在比较两个动态数组,但我不确定差距在哪里。我唯一的额外见解是,当我使用 gettype() 比较两个数组时函数,我得到
我试图找到两个 vector 的集合差异,所以我做了这样的事情: std::vector first_vec, second_vec, difference_vec; // populate firs
如果是,那是什么? 编辑:回应以下评论: var tabulatedOutputErrors = from error in outputErrors
我们能否像STL中的set_intersection和set_difference一样实现multimap_intersection或multimap_difference函数? 最佳答案 这个问题很
我有如下代码: typedef std::set set_of_strings; set_of_strings s1, s2, result1; some_func()
我是一名优秀的程序员,十分优秀!