- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
目前我正在获取两个 map 的集合差异,然后遍历生成的 map 。
理想情况下,我想创建一个差异 vector 而不是 map 。这样我可以更有效地进行迭代。
typedef std::map<int, Info> RegistrationMap;
RegistrationMap redundantRegs;
std::set_difference(map1.begin(), map1.end(), map2.begin(), map2.end(),
std::inserter(redundantRegs, redundantRegs.begin()),
[](const std::pair<int, Info> &p1, const std::pair<int, Info> &p2 {return p1.first < p2.first;});
for (auto reg : redundantRegs)
{
map2[hiu.first].Status = "delete";
}
您将如何创建集合差异的 vector ?这可以在 set_difference 函数中完成吗?
我正在寻找获得差价的最有效方法。
最佳答案
std::set_difference
可以将其输出写入任何输出迭代器,因此将输出写入 vector 没有问题:
std::vector<std::pair<int, Info>> redundantRegs;
std::set_difference(map1.begin(), map1.end(), map2.begin(), map2.end(),
std::back_inserter(redundantRegs),
...);
(注意:在您的比较器中,将 std::pair<int, Info>
更改为 std::pair<const int, Info>
以避免不必要的复制。)
关于c++ - 从两个 map 创建一个 set_difference vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56466369/
我试图找出以下两组之间的区别: 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()
我是一名优秀的程序员,十分优秀!