Accueil > Forum > > > > Trier une std::map
Trier une std::map
samedi 3 septembre 2005 à 20:26:49 |
Trier une std::map

simtiers
|
Salut ! voilà, j'ai une classe CPlayer avec une surcharge de l'operateur < (posY est une variable int private) : bool CPlayer::operator<( CPlayer* player ) { if( posY < player->getPosY() ) return true; return false; } J'utiliser une std::map pour ranger tous mes pointeurs vers un objet CPlayer. Il faudrait que la map classe les joueurs en fonction de leur position Y (c'est pourquoi l'operateur < ne vérifie que cette coordonée) Le problème est que je ne sais pas comment faire : je n'arrive pas à utiliser la méthode sort de std::algorithm Si qq'1 avait une idée, ce serait sympa de me la donner Merci
|
|
samedi 3 septembre 2005 à 20:43:39 |
Re : Trier une std::map

vecchio56
|
Une map est toujours triée. C'est à l'insertion que l'opérateur < est utilisé, pour insérer l'élément au bon endroit
|
|
samedi 3 septembre 2005 à 20:44:32 |
Re : Trier une std::map

vecchio56
|
Au fait, ceci sera plus joli ;)
bool CPlayer::operator<( CPlayer* player ) { return posY < player->getPosY(); }
|
|
samedi 3 septembre 2005 à 20:45:33 |
Re : Trier une std::map

simtiers
|
Y'a t il un moyen de trier la map à un moment voulu ? En fait, elle est trier dès qu'il y a un mouvement => c'est pour l'ordre d'affichage pour eviter les erreurs de chevauchement.
|
|
samedi 3 septembre 2005 à 20:48:06 |
Re : Trier une std::map

vecchio56
|
Tu es sur que ca marche ton truc? Comme tu utilises des pointeurs, je suis pas sur que operator< sera bien utilisé. Je teste ca
|
|
samedi 3 septembre 2005 à 20:49:14 |
Re : Trier une std::map

simtiers
|
en fait, pour récupérer le pointeur à partir de l'iterateur, je fais ça : for( std::map<std::string,CPlayer*>::iterator it = pointersMap.begin(); it != pointersMap.end(); it++ ) { CPlayer* tempPointer = (*it).second; if( tempPointer != NULL ) tempPointer->render(); }
|
|
samedi 3 septembre 2005 à 20:56:20 |
Re : Trier une std::map

vecchio56
|
Réponse acceptée !
C'est une map<std::string, CPlayer*>
Dans ce cas, la map sera triée selon la string, donc tu n'y est pas Pour que ce soit trié selon le CPlayer, tu dois avoir une map<CPlayer, std::string>
|
|
samedi 3 septembre 2005 à 20:57:52 |
Re : Trier une std::map

simtiers
|
ça va être chaud à changer, mais bon, si on n'a pas le choix..... Merci de m'aider vecchio
|
|
samedi 3 septembre 2005 à 21:01:32 |
Re : Trier une std::map

vecchio56
|
Non on a pas le choix ;) Attention, il faut CPlayer, pas CPlayer*!!
|
|
samedi 3 septembre 2005 à 21:11:39 |
Re : Trier une std::map

simtiers
|
J'ai juste un pb : le string est l'identifiant du joueur J'accède au pointeur CPlayer* via cet identifiant mais l'operateur [] de map ne marche qu'avec la clé (ce qui est logique) Donc si je fais map<CPlayer, string>, je perd l'interet d'utiliser map... Sinon, j'utilise un vector<CPlayer*>, et je le trie à partir d'une classe différente, surchargeant l'operateur <(Cplayer*, Cplayer*) Qu'est-ce que tu en penses ?
|
|
Cette discussion est classée dans : classe, trier, map, std, cplayer
Répondre à ce message
Sujets en rapport avec ce message
Récupérer un évènement [ par darsh99 ]
Bonjour,voilà j'ai créé une classe qui n'est dérivée de rien du tout, est-il possible de lui faire récupérer un évènement ?L'évènement étant généré pa
incompatibilité 'std' et 'friend' [ par cabieces ]
CABECOUJ'ai définit une fonction amie, celle ci doit donc pouvoir accéder aux champs privée de la classe. Ceci marche trés bien sauf quand la classe u
Utilisation de std::map avec le type void * [ par toast3r ]
Bonjour, J'utilise un tableau associatif, map et j'ai un problème au niveau de la récuperation des valeurs, voici le code que j'ai actuellement : #
algo search_n sur un std::map !!!!!! [ par gege1024 ]
je voudrais rechercher le nb d'occurence d'une valeur dans un std::mapje le fait pour un std::vector, c'est tout bon, mais je me demande pourquoi j'ar
comment inclure un conteneur dans une classe [ par kharrat ]
Salut,Je cherche désespérément à créer une classe qui a un conteneur map pour faire un carnet d'adresse (je m'amuse comme je peux...) en C++.Le compil
STD::map [ par noSnoR ]
En codant j'ai eu besoin de créer une map telle que :std::map Sufs;Il me semble donc qu'il n'y a pas de problème de syntaxe... Seulement, voici ce que
C'est ça un template ??? [ par wismerhill__ ]
Bonjour, j'ai un probleme que je pense etre simple mais bon ...J'ai une classe A dont un attribut est actuelement un std::vectorUne classe B mere de C
Opérateur de comparaison dans une classe générique [ par benjiiim94 ]
Bonjour, Je crois que pas mal d'infos sont dans le titre, il ne manque plus que la source de la classe : #pragma once #include "StdAfx.h" using n
Problème classe [ par krokro6 ]
Bonjour, voici mon problème: J'ai deux classe, une classe A et une classe B: class A { public : A(); virtual ~A(); int Pos
STL map et plusieurs types de valeurs ? [ par RV2931 ]
Bonjour à tous,J'ai découvert récemment les STL C++ car je souhaite retrouver un outils permettant de retrouver la puissance et la flexibilité des tab
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|