【发布时间】:2020-02-19 23:05:26
【问题描述】:
我在 C++ 中有两个 std::unordered_maps,其中键是索引(无符号整数),值是实数向量。地图定义如下:
std::unordered_map<Index, std::vector<Real>> outgoing_msgs;
std::unordered_map<Index, std::vector<Real>> outgoing_msgs_prev;
这两个 unordered_map 具有相同的结构和大小属性,并且它们具有相同的键值、相同的向量大小,但区别在于向量元素值。
我想根据索引得到outgoing_msgs_prev(也就是第二个unordered_map)的向量值减去outgoing_msgs(第一个unordered_map)的向量值,也就是说减法向量将发生在两个无序映射中具有相同键(索引)的向量。
有可能吗?
最快的方法是什么?
【问题讨论】:
-
"有可能吗?" 是的。您尝试过什么来实现这一目标?
-
您要修改哪张地图?还是您真的只想要差异?
-
我的第一个念头是std::set_difference...
-
没有什么可以轻松帮助您。您将不得不遍历其中一张地图并在另一张地图中查找。理想情况下,循环通过较小的那个。
标签: c++ unordered-map