|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre régulier
![]() Inscription : novembre 2006 Messages : 349 ![]() |
Bonjour,
J'ai regardé le graph de la faq pour l'utilisation de conteneurs. Le dernier choix pour lutiliser une map ou un set est le fait d'avoir les clefs et valeurs separées - et je n'arrive pas a a l'interprete sur un cas comme ci dessous: Code :
Merci d'avance pour votre aide. |
||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Guillaume BelzBiochimiste Inscription : novembre 2008 Messages : 5 314 ![]() |
Bonjour
Je te laisse rechercher dans le forum pour tous les problèmes d'accessibilité aux variables membres, à la sémantique d'entité, etc (ou je laisse un autre compléter)... Pour ton problème spécifique, il suffit que ta classe Unite soit comparable, càd qu'il faut lui fournir un opérateur de comparaison < ou spécialiser la fonction Less
__________________
Vous souhaitez rejoindre l'équipe de bénévoles qui fait vivre Developpez (traduction, rédaction, modération) ? Contactez moi par MP. Ma page personnelle avec la liste de mes articles - Mon blog sur le C++, Qt et les GPU. Je suis régulièrement sur le chat pour les questions C++/Qt. Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5. |
|
00
|
|
|
#3 | ||
|
Membre régulier
![]() Inscription : novembre 2006 Messages : 349 ![]() |
Merci pour ta reponse,
Dois je aussi re-preciser l'operateur == afin qu'il puisse savoir si un element est deja inseré ? (mon egalite ne porte que sur ma string) Question annexe sur une map pour ne pas recrrer un post: Code :
Doit on donc passer par une recherche de l'element, le supprimer s'il existe et enfin inserer le nouveau ? |
||
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Guillaume BelzBiochimiste Inscription : novembre 2008 Messages : 5 314 ![]() |
Pour =, je sais plus, mais probablement que oui (le compilateur te le dira si c'est le cas). Par contre, attention à la sémantique
Pour map, oui, il faut faire un find pour vérifier qu'un élément existe et le supprimer si nécessaire (ou multimap si tu veux avoir plusieurs éléments avec la même clé), ou utiliser un pointeur intelligent
__________________
Vous souhaitez rejoindre l'équipe de bénévoles qui fait vivre Developpez (traduction, rédaction, modération) ? Contactez moi par MP. Ma page personnelle avec la liste de mes articles - Mon blog sur le C++, Qt et les GPU. Je suis régulièrement sur le chat pour les questions C++/Qt. Apprendre Qt 5 : vidéos d'installation (YouTube), extraites du livre Créer des applications avec Qt 5. |
|
00
|
|
|
#5 | ||||
![]() ![]() Loïc JolyDéveloppeur informatique Inscription : août 2004 Messages : 4 675 ![]() |
Citation:
Maintenant, pour d'autres usages de ta map, où tu pourrais être moins prudent, il me semble intéressant de définir l'opérateur == quand même (et qu'il donne les mêmes résultats que le tests à base d'operator<). Citation:
__________________
Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11. |
||||
|
|
00
|
|
|
#6 |
|
Membre régulier
![]() Inscription : novembre 2006 Messages : 349 ![]() |
Ok merci beaucoup pour vos réponses.
J'utilise un set sur des objets et non plus des pointeurs et j'ai definie < Je regarderais après pour les passer en pointeur intelligent mais ca n'est pas la prio car petits objets et petits stockage. Merci |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com