J'ai créé deux cartes de la forme:Fusion de deux cartes C++
[numéro d'événement] [masse] appelée carte results_JMass
et
[numéro d'événement] [momentum] appelé carte results_PhotonPt
Les deux cartes ont la même clé (numéro d'événement) qui est un nombre entier et contient des doubles comme valeurs. Je voudrais créer une troisième carte de la forme:
[numéro d'événement] [masse] [mouvement]
Je sais que je dois utiliser
std::map <Int_t, std::vector< pair <Double_t,Double_t> > > new_map;
Mais je ne suis pas sûr comment combiner les deux cartes pour créer la troisième.
C'est ce que je suis venu avec:
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;
}
}
sont les deux cartes garanties pour contenir le même ensemble de numéros d'événement? – Steve
Sans rapport avec votre question, mais qu'est ce que Int_t et Double_t? Sont-ils normaux 'int' et' double'? Pourquoi les noms de types personnalisés? –
Il me semble que la façon correcte d'exprimer la carte devrait être: 'std :: map> new_map;' –
Amadeus