gpt4 book ai didi

c++ - 合并两个 map c++

转载 作者:行者123 更新时间:2023-11-27 23:50:27 26 4
gpt4 key购买 nike

我创建了两个形式的 map :

[事件编号][质量]调用 map 结果_JMass

[事件编号][动量]调用图results_PhotonPt

两个映射具有相同的键(事件编号),它是一个整数并包含 Doubles 作为值。我想创建以下形式的第三张 map :

[事件编号][质量][动量]

我知道我需要使用

  std::map <Int_t, std::vector< pair <Double_t,Double_t> > > new_map; 

但我不确定如何将两张 map 结合起来创建第三张 map 。

这是我想出的:

   for (auto& kv3 : results_JMass) { //Iterates the data with kv3 as the iterator and the results_jMass what kv3 is iterating through
event_number = kv3.first; //Iterator for the first index, i.e the events
m = kv3.second; //iterator for the second index i.e the masses

new_map [event_number].first = m;

for (auto&kv4: results_PhotonPt) {
event_number = kv4.first;
p = kv4.second;

new_map [event_number].second = p;
}
}

最佳答案

假设你的意思是:

std::map < Int_t, pair <Double_t,Double_t> > new_map; 

遍历第一个 map ,并使用以下方法将键和值添加到新 map :

new_map [event_number].first = mass;

然后迭代第二个映射,并将键和值添加到新映射:

new_map [event_number].second = momentum;

我假设 2 个源 map 包含完全相同的事件编号列表,只是数据不同 - 如果不是,您将在 new_map 中获得一些条目,这些条目仅包含一个或另一个数据

关于c++ - 合并两个 map c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46829680/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com