Partage
  • Partager sur Facebook
  • Partager sur Twitter

initialiser un tableau a 3d dans un constructeur

aidez moi SVP

Sujet résolu
    24 octobre 2018 à 19:47:13

    Bonjour TLM , comme c'est ecris dans le titre j ai une class de format

    class A{

    class A{
     public:
      .
      .
      .
    };
    
    class B{
    
    vector<vector<vector<A>>> attribu ;
    
    b():???? // <-comment l'initialiser{
    } 
    
    
    };

    };

    • Partager sur Facebook
    • Partager sur Twitter
      24 octobre 2018 à 20:08:09

      Ce n'est pas un vecteur à 3 indices mais un vecteur de vecteur de vecteur.

      Le plus simple, c'est de n'avoir, en interne, qu'un vecteur de A et de créer les méthodes qui permettent d'accéder à l'élément voulu via ces 3 coordonnées : "linéarisation du tableau".

      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        24 octobre 2018 à 21:28:17

        C bon je crois que j'ai trouver la reponse brique c'est la class A Construction c'est la class B Construction a; //une instance de A

        Construction(Brique b):contenu(1, vector<vector> >(1, vector<brique>(1, b))) voila si ca interesse qq</brique></vector>

        -
        Edité par wafistos 24 octobre 2018 à 21:34:35

        • Partager sur Facebook
        • Partager sur Twitter
          24 octobre 2018 à 22:33:34

          vector<vector<vector>>> ça risque de ne pas être terrible niveau perfs, la méthode de linéarisation marche pour la 2d et peut être généralisée à la 3d  (à n'importe quelle dimension en fait), si tu veux un truc qui peut potentiellement pulser, j'aurais tendance à te conseiller d'aller chercher à linéariser. La linéarisation 2d, c'est p = x * Y + y. En 3d  ça donne p = x*Y*Z + y*Z + z où (x,y,z) et l'indice dans le tableau 3d, p est l'indice dans le tableau 1d correspondant et X,Y et Z sont les tailles des 3 dimensions, la taille du tableau 1d correspondant étant X*Y*Z. C'est de l'algèbre élémentaire et ça marche très bien.

          -
          Edité par int21h 24 octobre 2018 à 22:37:15

          • Partager sur Facebook
          • Partager sur Twitter
          Mettre à jour le MinGW Gcc sur Code::Blocks. Du code qui n'existe pas ne contient pas de bug
            25 octobre 2018 à 11:08:24

            @int21h c'est pour un exercice donc je suis obliger de faire avec !! merci quand meme pour ta reponse

            • Partager sur Facebook
            • Partager sur Twitter

            initialiser un tableau a 3d dans un constructeur

            × 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