Partage
  • Partager sur Facebook
  • Partager sur Twitter

push back de vecteur de vecteur.

    13 mai 2019 à 13:57:51

    Bonjour,

    J'ai un membre d'une classe qui est un vecteur de vecteur de vecteur (d'une autre de ma classe mais bon).

    J'aimerai pouvoir faire un push_back au 1er vecteur, donc lui envoyer un vecteur de vecteur.

    Comment on peut faire ?

    Merci !

    • Partager sur Facebook
    • Partager sur Twitter
      13 mai 2019 à 14:24:48

      Lu'!

      Ton problème n'est absolument pas clair. Mais sinon j'aurais tendance à dire qu'il y a des éléments sémantiques à nommer dans ton histoire ...

      • Partager sur Facebook
      • Partager sur Twitter

      Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

        13 mai 2019 à 14:26:12

        Simplement

        vec.push_back(std::vector<std::vector<int>>());

        Si j'ai bien compris ta question.

        -
        Edité par Khanoa 18 septembre 2019 à 10:59:26

        • Partager sur Facebook
        • Partager sur Twitter
          14 mai 2019 à 21:55:29

          Ksass`Peuk a écrit:

          Lu'!

          Ton problème n'est absolument pas clair. Mais sinon j'aurais tendance à dire qu'il y a des éléments sémantiques à nommer dans ton histoire ...


          Son problème est clair. Il ne sait pas comment ajouter un vecteur de vecteur dans un vecteur. Il a un problème avec la syntaxe du langage.
          • Partager sur Facebook
          • Partager sur Twitter
            15 mai 2019 à 0:17:57

            Raynobrak a écrit:

            Son problème est clair. Il ne sait pas comment ajouter un vecteur de vecteur dans un vecteur. Il a un problème avec la syntaxe du langage.


            Ou plutôt de compréhension du concepte
            Un vector de vector, qu'est ce que c'est ?
            Un tableau 2D, soit:
            Un premier tableau dont chaque element contient un tableau.

            L'image ci-dessous t'aidera peut-être a avoir une meilleur visualisation de ce que tu manipules:

            Donc les elements [x] à [x+N] contiennent un tableau 1D (vector dans ton cas).
            et les elements [x][y] à [x][y+N] contiennent une donnée.

            Bref, ajouter une ligne, c'est ajouter un tableau.

            PS: Plutôt qu'un vector 2D, la linéarisation ne serait-elle pas plus adaptée ?

            -
            Edité par Deedolith 15 mai 2019 à 0:18:44

            • Partager sur Facebook
            • Partager sur Twitter
              15 mai 2019 à 8:57:55

              Raynobrak a écrit:

              Son problème est clair. Il ne sait pas comment ajouter un vecteur de vecteur dans un vecteur. Il a un problème avec la syntaxe du langage.

              Non parce que ceci :

              Passworld_ a écrit:

              J'aimerai pouvoir faire un push_back au 1er vecteur, donc lui envoyer un vecteur de vecteur.

              N'a pas de sens. Il n'y a pas de "premier vecteur". D'où le fait que je lui demande de clarifier son message, pour qu'il comprenne lui même mieux son problème. Sans parler du fait que je le répète, mais il y a sûrement un gros manque de sémantique, parce qu'un vecteur de vecteur de vecteur, c'est pas une bonne idée dans un code.

              • Partager sur Facebook
              • Partager sur Twitter

              Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

                15 mai 2019 à 11:04:11

                Mon premier vecteur c'est le membre de ma classe.

                Et effectivement c'est un problème de syntaxe (que je ne connais pas)

                Je voulais (devais, dans un tp sur coursera) faire un vecteur à trois dimensions pour représenter une construction

                Et j’utilisais ça pour faire un push back :

                vector< vector< Brique > >   a ( contenu.size() - c.contenu.size() , vector< vector< Brique > > (1 /* y*/, vector< Brique > (1 /* z */, Brique ("                 ", "") ) ) );
                contenu.push_back(a);

                Dans une de mes méthodes de classe pour surcharger l'opérateur ^= (sensé rajouter un autre vector en 3d au dessus du this)

                Mais ça marche pas vraiment...

                EDIT : mon code complet si vous voulez : https://pastebin.com/i0RFD3HV

                -
                Edité par Passworld_ 15 mai 2019 à 11:28:58

                • Partager sur Facebook
                • Partager sur Twitter
                  15 mai 2019 à 23:07:11

                  Mouais, heu, un vector 3D ne me semble pas être la meilleur idée qui soit.

                  Si l'on considère que chaque "case" du vector 3D représente un point de coordonnées (X, Y, Z), beaucoup ne seront pas utilisés.
                  Par exemple entre les deux extrémités d'un segment dans l'espace 3D, avec le point A (0, 0, 0) et B(14, -25, 17), seul les points A et B nous intéressent, tous ce qu'il y a entre les 2, on s'en cogne, ou presque puisque ce sera calculé.
                  Il est inutile de stocker les données calculées.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    16 mai 2019 à 12:45:09

                    Effectivement, ça pourrait être plus partique

                    Je fais un exo et je suis obligé de faire une vecteur en 3d

                    la consigne

                    • Partager sur Facebook
                    • Partager sur Twitter
                      16 mai 2019 à 20:18:08

                      Ouais, bon, c'est bien plus de l’exercice de "mathématique" que d'informatique "appliqué".

                      Pour ce genre de bidule, effectivement un vector<vector<vector<Brique>>> peut avoir un "sens".

                      C'est pas un "vecteur 3D" ni un "vecteur en 3D", c'est juste un bidule pour schématiser leur "Algèbre" de maçon.

                      Il y a tellement de condition et de manipulation de dimension à faire que l'utilisation bourrin d'un push_back est très probablement une erreur (ou une optimisation pour plus tard.).

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

                      push back de vecteur de vecteur.

                      × 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