Bonjour,

Je dois fusionner deux multimaps.
Je sais le faire avec insert (complexité en temps dans O(N.Log(N)).
Je voudrais le faire avec merge (complexité en temps dans O(N)).

J'ai essayé ça, mais ça ne compile pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
typedef std::multimap<int, std::pair<int, int>> Map ; // ma structure de multimap
Map final_m ;
Map m1 = my_algo(b1) ; // retourne une des maps à fusionner
Map m2 = my_algo(b2) ; // retourne l'autre map à fusionner
 
// erreur ici : final_m.begin() n'est pas le bon itérateur.
merge (m1.begin(), m1.end(), m2.begin(), m2.end(), final_m.begin()) ;
Merci de votre aide, Olivier