簡體   English   中英

如何將 std::unordered_map 向量元素從一個減去另一個並在 C++ 中更新它?

[英]How to subtract std::unordered_map vector elements from one to other and update it in C++?

我在 C++ 中有兩個std::unordered_map ,其中鍵是索引(無符號整數),值是實數向量。 這些映射定義如下:

std::unordered_map<Index, std::vector<Real>> outgoing_msgs;

std::unordered_map<Index, std::vector<Real>> outgoing_msgs_prev;

這 2 個 unordered_map 具有相同的結構和大小屬性,並且它們具有相同的鍵值、相同的向量大小,但不同之處在於向量元素值。

我想根據索引從outgoing_msgs_prev (這是第二個unordered_map)的向量的值中獲得outgoing_msgs (第一個unordered_map)的向量值的減法,這意味着向量的減法將發生在向量在兩個無序映射中具有相同的鍵(索引)。

可能嗎?

最快的方法是什么?

你的意思是像

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];
}

?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM