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 :

Equivalent de std::pair mais pour trois valeurs


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Par défaut Equivalent de std::pair mais pour trois valeurs
    Bonjour,

    Dans mon programme, j'ai une grille 3D. Chacune des ses cases (cubes) est repérée par un trio <i,j,k>. Existe-t-il un objet équivalent à std::pair mais gérant trois indexes au lieu de deux, svp?

    Cordialement,
    Rodrigue

  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
    Par défaut
    Il y a bien boost::tuple, mais je pense que pour ce genre de choses, un struct coor {int i, int j, int k}; et plutôt plus simple...
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  3. #3
    Membre émérite
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Par défaut
    tu peux aussi créer ton propre type,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    template< typename First, typename Second, typename Third > struct triplet {
        typedef First first;
        typedef Second second;
        typedef Third third;
    };
    ensuite, tu peux écrire ton propre "make_triplet" si tu veux

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 26
    Par défaut
    Tout dépend de ce que tu veux en faire. Si tu veux utiliser un itérateur, ça va pas être pratique une struct

  5. #5
    Membre Expert
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Par défaut
    Il y a bien boost::tuple, mais je pense que pour ce genre de choses, un struct coor {int i, int j, int k}; et plutôt plus simple...
    Ne réinvente pas la roue. Utilise boost::tuple, qui pourrait bien devenir une partie du standard C++...

  6. #6
    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
    Par défaut
    Que boost::tuple fasse probablement partie du prochain standard, oui.
    Qu'il ne faille pas réinventer boost::tuple, oui.
    Que boost::tuple soit une abstraction appropriée pour le cas cité, c'est là que j'ai un gros doute.

    La structure que je propose a l'avantage de nommer ses différents membres, ce qui la rend bien plus simple d'utilisation que boost::tuple. Ce dernier me semble plus indiqué pour écrire du code générique, mais pour du code applicatif, ça me semble inutilement lourd. Ou alors, propose pour la prochaine version du C++ de supprimer le mot clef struct, et de ne permettre que des tuples
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

Discussions similaires

  1. Equivalent de TOAD oracle mais pour Postgre ?
    Par vingsxr dans le forum Outils
    Réponses: 3
    Dernier message: 25/09/2012, 16h37
  2. Equivalent de TOAD oracle mais pour Postgre ?
    Par vingsxr dans le forum Administration
    Réponses: 7
    Dernier message: 07/09/2009, 10h06
  3. Equivalent de TOAD Oracle mais pour Postgre ?
    Par vingsxr dans le forum Toad
    Réponses: 3
    Dernier message: 08/04/2009, 20h14
  4. [POO] Equivalent de getElementById mais pour une class ?
    Par boutmos dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 29/04/2008, 10h19
  5. Equivalent du L en C pour les valeurs hexa
    Par Rustine dans le forum Delphi
    Réponses: 2
    Dernier message: 11/03/2007, 13h05

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