c++ - 如何从一个到另一个减去 std::unordered_map vector 元素并在 C++ 中更新它?

标签 c++ unordered-map

我在 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/

相关文章:

c++ - EnumProcessModules 在 32 位 win7 上失败并出现错误 299

c++ - 通过 QMetaObject::invoke 调用 QListView setModel 问题

传递字符串的 C++ 非 POD 警告?

c++ - 如何在 Visual Studio 2013 的 C++ 项目中编译和链接谷歌测试,但使用 NuGet 包管理器安装 Gtest?

c++ - 如何从 QDataStream 中读取多个相同类型的序列化对象?

c++ unordered_map 冲突处理、调整大小和重新散列

c++ - map 越长越慢吗

c++ - unordered_map 的键

c++ - 使用索引 for 循环遍历 Unordered_map

c++ - 为什么打印un_ordered map和map(dictionary)的key和value有异常?