Comment faire pour ajouter le contenu d'une carte à une autre carte?
J'ai deux cartes:
map< string, list < string > > map1;
map< string, list < string > > map2;
J'ai peuplé map1, maintenant je veux copier le map1 contenu dans map2. J'ai donc tout simplement fait:
J'ai une opération pour que la map1 remplit avec
1. kiran, c:\pf\kiran.mdf, c:\pf\kiran.ldf
2. test, c:\pf\test.mdf, c:\pf\test.mdf
Et maintenant, je dois remplir map2 avec ce contenu. Et une map1 remplit avec des infos
1. temp, c:\pf\test.mdf, c:\pf\test.ldf
2. model, c:\model\model.mdf, c:\pf\model.ldf
Maintenant, je dois ajouter ces contenus à map2. Comment puis-je faire cela?
Il semble que la bonne façon de le faire en fonction de la documentation: http://www.cplusplus.com/reference/stl/map/operator=/
Comment se fait-il que vous et l'utilisateur Mignon poser des questions similaires à peu près au même moment???
Ok, mais quel est le point de poser la question deux fois? L'un de vous pourrait se poser la question et puis les deux d'entre vous pourrait voir les réponses. La Question de la duplication juste dilue l'effort de la communauté et vous obtenez moins de bonnes réponses.
(J'ai fusionné ces deux questions identiques)
Comment se fait-il que vous et l'utilisateur Mignon poser des questions similaires à peu près au même moment???
Ok, mais quel est le point de poser la question deux fois? L'un de vous pourrait se poser la question et puis les deux d'entre vous pourrait voir les réponses. La Question de la duplication juste dilue l'effort de la communauté et vous obtenez moins de bonnes réponses.
(J'ai fusionné ces deux questions identiques)
OriginalL'auteur Cute | 2009-07-01
Vous devez vous connecter pour publier un commentaire.
Cela permettra d'insérer dans
map1
les éléments du début à la fin demap2
. Cette méthode est standard pour tous les STL structure de données, de sorte que vous pouvez même faire quelque chose commeEn outre, les pointeurs peuvent également fonctionner comme des itérateurs!
Recommandons fortement l'étude de la magie de la STL et les itérateurs!
> >
🙂Oh oui, certains compilateurs plaindre de la imbriqués les paramètres de modèle (toux GCC), comme l' >> ressemble à un flux d'extraction de l'opérateur. Si vous avez besoin d'un espace au milieu. Je viens du monde Windows, cependant, et le compilateur de Visual Studio fait la bonne chose. 🙂
bonne info, merci!
En C++1x espace entre >> n'est pas nécessaire.
utilisation
std::make_move_iterator
si map2 n'est pas nécessaire.OriginalL'auteur Nick Lewis
Vous pouvez utiliser la méthode d'insertion de la carte. Par exemple:
Son juste un exemple..il signifie la touche val : 1 cartes de valeur 1 🙂
OriginalL'auteur Naveen
Vous pouvez le faire de plusieurs façons en fonction de ce que vous voulez faire:
Utiliser le constructeur de copie:
Utiliser l'opérateur d'affectation comme vous l'indiquez dans la question:
Tout faire vous-même manuellement:
Il sonne comme (1) est-ce que vous voulez.
Je m'attendais à cette réponse au premier coup
OriginalL'auteur Greg
Je pense que vous voulez ce:
Je crois que vais juste passer toutes les clés qui existent déjà dans la cible. Si vous souhaitez remplacer les valeurs en double de clés que vous auriez à effectuer une itération sur les éléments, l'insertion de chaque un, tester le résultat de la paire et de remplacer la valeur.
Pour les trois "carte" en cas, vous avez besoin de:
OriginalL'auteur Tim Sylvester
Si vous souhaitez insérer votre carte comme vous le définir, c'est gentil:
OriginalL'auteur Pellet