我在 C++ 中有两个 std::unordered_map
,其中键是索引(无符号整数),值是实数 vector 。 map 定义如下:
std::unordered_map<Index, std::vector<Real>> outgoing_msgs;
std::unordered_map<Index, std::vector<Real>> outgoing_msgs_prev;
这两个 unordered_map 具有相同的结构和大小属性,并且它们具有相同的键值,相同的 vector 大小,但不同之处在于 vector 元素值。
我想从 outgoing_msgs_prev
(这是第二个 unordered_map)的 vector 值中减去 outgoing_msgs
(第一个 unordered_map)的 vector 值在索引上,这意味着 vector 的减法将发生在两个无序映射中具有相同键(索引)的 vector 。
这可能吗?
最快的方法是什么?
最佳答案
你的意思是像
for(auto &[key, val]: outgoing_msgs)
{
auto &prev{outgoing_msgs_prev[key]};
for(std::size_t i{}; i < val.size(); ++i) val[i] -= prev[i];
}
?
关于c++ - 如何从一个到另一个减去 std::unordered_map vector 元素并在 C++ 中更新它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58527278/