J'essaie de remplir le contenu d'une mappe C++ dans une étendue de boucle.Remplir le contenu de mappes C++ dans une étendue de boucle
#include <set>
#include <map>
map<int, set<int> > maps;
for (int i=0; i<10; i++) {
set<int> seti; // content: a set of integers
seti.insert(i);
seti.insert(...);
maps.insert (pair<int,set<int> >(i,seti));
}
La question est: -t maps.insert copier le contenu de paire? Si l'instance de paire n'est pas valide après chaque étendue de boucle, ce code doit échouer.
Comment générer correctement un contenu de carte (avec un pointeur et une nouvelle instance?) Et comment nettoyer correctement une carte?
merci pour toute suggestion de bonnes pratiques.
--- MISE À JOUR ---
map<int, set<int> >::iterator it;
int k = (*it).first;
set<int> v = (*it).second;
est maintenant le 'v' aussi une copie de l'instance réelle stockée sur la carte?
si oui, que je n'ai aucun moyen de mettre directement à jour le contenu de la carte.
Pour ajouter aux réponses postées, qui sont tous corrects ... en utilisant des pointeurs + 'new' ici ne serait pas la meilleure pratique, à la limite sur incorrect. – Potatoswatter