Partage
  • Partager sur Facebook
  • Partager sur Twitter

2 Questions:

    21 août 2007 à 17:03:33

    J'ai 2 questions:

    -Dans une map, comment intégrer une variable déffinie précédament:

    ex:

    A1=2;
    A2=0;
    A3=3;

    map<int,string> A;
    A[1] = A1;
    A[2] = A2;
    A[3] = A3;

    et quand je fais cout<<A[1]; je veux qu'il me renvoit 2 etc.

    Pour l'instant il me renvoit une sorte de smiley.


    -Je cherche un moyen pour que quand je tape A+1 mon programme comprenne que je parle de B (B etant une autre map).

    • Partager sur Facebook
    • Partager sur Twitter
      21 août 2007 à 17:08:53

      Salut Je pense que si tes tableaux ne sont pa strop grand tu pe utiliser des condition sinon je vois pas trop comment.
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        21 août 2007 à 17:18:12

        1. cout<<(*A[1]).second;

        Il faut que la classe ai redéfinit les opérateur de flux.

        Citation : Pas de titre

        -Je cherche un moyen pour que quand je tape A+1 mon programme comprenne que je parle de B (B etant une autre map).


        A moins de mettre tes maps dans un vecteur , je vois pas.
        • Partager sur Facebook
        • Partager sur Twitter
          21 août 2007 à 17:20:09

          c'est justement psk mes tableau seront grand que je veux utiliser les map.

          Sinon encore une autre question qui annulera la première, comment introduire une valeur directement dans la map a partir d'un cin. Que l'utilisateur du programme rentre une donnée et qu'elle se classe directement dans une partie de la map.


          -----
          Edit: pour ta reponse, Davidbrcz, le "second" correspond a quoi?
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            21 août 2007 à 17:28:47

            Je pense que l'on ne peut pas.
            La méthode intuitive serait de faire :
            1. map<X,Y> mp;
            2. m[cin>>x]=y;


            mais cela ne peut pas marcher car operator >> renvoit un istream&.
            Donc pour moi , c'est mort.
            • Partager sur Facebook
            • Partager sur Twitter
              21 août 2007 à 17:38:52

              Ok, la j'suis entrain de regarde pour faire ca avec un simple tableau a 2 dimensions. Mais faut que j'trouve un moyen pour que quand je tape A, le programme sache que j'parle de la premiere collone, et quand j tape 1, que j parle de la premiere ligne. Apres a l'intersection des 2, j mets la donnée A1.

              Toute aide pour ce dernier probleme est la bienvenue.

              En tout cas merci pour tes conseils
              • Partager sur Facebook
              • Partager sur Twitter
                21 août 2007 à 17:39:12

                Déja, il faut bien comprendre ce que tu fais :

                tu fais une map<int,string> A;

                quand tu fais A[1] = A1, alors A1 est un string, ou alors il est casté en string.
                Montre nous comment tu as déclaré ton A1.

                Ensuite si tu fais :
                A1 = 2;

                et que ton A1 est un string, ça veut dire que tu donnes un int a la string.
                Es tu sur que tu ne voulais pas faire :

                A1 = "2";

                car le code ASCII 2 est la tete ASCII dont tu parles :)
                Ton cout voit que tu écris A[1], donc un string (élément de droite de la map), donc il écrit le code ASCII de 2.

                Si tu fais :
                A1 = "2";
                ça devrait déja aller mieux :)

                De plus,
                cout << A[1]; est tout a fait accepté :
                quand tu parles de A[x], alors le type renvoyé est le 2e type de la map : pour toi, un string.
                • Partager sur Facebook
                • Partager sur Twitter

                Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                  21 août 2007 à 18:58:43

                  fait une map de <string,map*> qui contient tes map... ainsi mapdemap[ "A" ] = &A;

                  ensuite si tu recois un "A + 1" avec les itérateurs tu trouve la position de "A" et tu incrémente ton itérateur pour trouver le prochain.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    21 août 2007 à 19:57:19

                    Alors là au niveau performance ça va roxxer....

                    D'après moi, il y a dès le départ quelquechose de pas clair. J'avais suggéré la map dans le topic précédent mais finalement je suis sur que c'est une mauvaise solution. Il faudrait tout repenser différemment.
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
                      22 août 2007 à 19:34:05

                      je vois pas en quoi un conteneur de pointeur de conteneur va faire suer le processeur? et encore moins le fait de prendre un itérateurs pour passer d'un élément a l'autre...

                      Pour ce qui est de la mauvaise conception je suis 100% en accord avec toi. je ne vois pas non plus l'utilité d'un tel fonctionnement
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Anonyme
                        22 août 2007 à 19:36:38

                        Citation : Pas de titre

                        je vois pas en quoi un conteneur de pointeur de conteneur va faire suer le processeur



                        Multiple déférencement.
                        Pour peut qu'il l'utilse souvent avec des objets lourds, ca va trimer.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          22 août 2007 à 20:11:15

                          La map est pas vraiment un conteneur rapide, alors une map de map ça va être encore pire.

                          De plus la map n'est pas conçu de manière à ce qu'on utilise un itérateur (ou n'importe quoi d'autre) pour la parcourir du début à la fin.
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.

                          2 Questions:

                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                          • Editeur
                          • Markdown