IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SL & STL C++ Discussion :

comparateur de set pour trier des vertex3D


Sujet :

SL & STL C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Points : 9
    Points
    9
    Par défaut comparateur de set pour trier des vertex3D
    Bonjour,

    Voila mon problème, j'ai un set de Vertex3D mais je n'arrive pas à faire un comparateur correct. Le compilo n'accepte pas un comparateur de cette forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    struct comp {
    	bool operator() (Vertex * v1, Vertex * v2) const
    	{
    		if(v1->getX() < v2->getX())
                          return true;
                    else if(v1->getY() < v2->getY())
                           return true;
                    else if(v1->getZ() < v2->getZ())
                           return true;
                    else
                           retun false;
            }
    };
    J'utilise pour l'instant ce comparateur qui n'est pas tout à fait correct puisque les vertex (0.5,0,0) et (0,5,0) sont egaux dans ce cas .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    struct comp {
    	bool operator() (Vertex * v1, Vertex * v2) const
    	{
    		if((v1->getX()*100 + v1->getY()*10 + v1->getZ() < 
                        v2->getX()*100 + v2->getY()*10 + v2->getZ()))
    			return true;
    		else
    			return false;
    	}
    };

    Donc si vous avez une idée......merci

  2. #2
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    De base, s'il y a deux éléments, un comparateur pourrait être :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    bool operator< (Personne const &p1, Personne const &p2)
    {
      if (p1.nom < p2.nom)
        return true;
      else if (p2.nom < p1.nom)
        return false;
      else
        return p1.prenom < p2.prenom;
    }
    Alors que ce que tu as fait ressemble plus à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    bool operator< (Personne const &p1, Personne const &p2)
    {
      if (p1.nom < p2.nom)
        return true;
      else
        return p1.prenom < p2.prenom;
    }
    A toi d'étendre pour 3 éléments.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    ha nikel c'est bon. Tu m'as mis la puce à l'oreille. J'avais fait un comparateur comme dans ton premier code mais j'avais mis un > au lieu d'inverser les valeurs. merci beaucoup

  4. #4
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Ce serait pas plus intelligent d'utiliser un index spatial plutôt qu'un set ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. besoin d aide pour trier des nombres
    Par flexi2202 dans le forum Excel
    Réponses: 2
    Dernier message: 15/11/2010, 08h47
  2. Problème Macro pour trier des données
    Par lmb19 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/11/2010, 00h00
  3. Problème pour trier des données
    Par johannj dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/07/2010, 14h03
  4. filtre pour trier des données
    Par glasgow dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 10/08/2009, 09h30
  5. [Javascript][XSLT] Meilleur solution pour trier des données ?
    Par buzzkaido dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 11/10/2006, 13h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo