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

C++ Discussion :

Une map dans une map


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Une map dans une map
    Bonsoir,

    Mon problème est simple j'ai une map dans une map.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::map <std::string, std::map<Objet, CEGUI:UVector2> > listeDeContenant;
    a un moment de mon code j'ai besoin de faire un erase.
    J'ai essayé ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    listeDeContenant.erase(args->window->getName());
    evidemment ca ne marche pas.

    Comment faire un erase d'une map dans une autre map ?svp

    A+
    Dernière modification par Invité ; 23/02/2016 à 00h08.

  2. #2
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2013
    Messages : 610
    Billets dans le blog
    21
    Par défaut
    evidemment ca ne marche pas
    Non, en fait, ça n'a rien d'évident, erase a bien une signature qui prend la clé: http://fr.cppreference.com/w/cpp/container/map/erase

    Les autres signatures prennent un itérateur; cela te permet de diviser en deux étapes la démarche: 1) trouver l'élément à effacer et 2) effacer cet élément. Tu pourras localiser le problème plus aisément:

    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    auto it = liste_de_contenants.find(args->window->getName());
    if (it == std::end(liste_de_contenants)) {
      std::cerr << "Elément absent de la liste\n";
    }
    else liste_de_contenants.erase(it);
    assert(liste_de_contenants.find(args->window->getName()) == liste_de_contenants.end(), "bug toujours là");

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <iostream>
    #include <map>
    using namespace std;
     
    int main()
    {
    	std::map <int, std::map<int, std::string>> listeDeContenant{{5, {{1, "maChaine"}}}};
     
    	cout << listeDeContenant.size() << endl;
    	listeDeContenant.erase(5);
    	cout << listeDeContenant.size() << endl;
     
    	return 0;
    }

  4. #4
    Membre très actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mai 2014
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 227
    Par défaut
    hum hum.. std::multimap

  5. #5
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par Disixlis Voir le message
    hum hum.. std::multimap
    Ben sachant que les 2 maps ont des clefs différentes... A part si le besoin de recherche sur Object n'est pas nécessaire, je ne pense pas que multimap soit appropriée.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

Discussions similaires

  1. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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