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++

  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 chevronné

    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
    Points : 1 878
    Points
    1 878
    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 émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    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 habitué
    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
    Points : 162
    Points
    162
    Par défaut
    hum hum.. std::multimap

  5. #5
    Expert éminent sénior

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

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 479
    Points
    11 479
    Billets dans le blog
    11
    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.

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