Partage
  • Partager sur Facebook
  • Partager sur Twitter

Tableau de vecteur

    22 septembre 2018 à 13:09:08

    Bonjour, je cherche à créer un tableau de vecteur "statique". Dans l'idée, il y aurait un nombre de ligne infinies, mais chaque ligne n'est composée que de 4 int.
    Voici mon idée: vector <int[4]> ligne;

    mais après je ne sais pas comment remplir ce tableau ligne par ligne...
    Si quelqu'un pouvait m'aiguiller.. Merci !

    • Partager sur Facebook
    • Partager sur Twitter
      22 septembre 2018 à 13:21:38

      Lu'!

      std::vector<std::array<int, 4>> v ;
      • Partager sur Facebook
      • Partager sur Twitter

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

        23 septembre 2018 à 12:41:32

        Et le remplissage se fait en écrivant 

        std::vector<std::array<int,4>>  v;
        
        // ajout direct d'une ligne avec les 4 éléments
        v1.push_back({ 1, 2, 3, 4 });
        
        // ou en préparant les données avant dans un tableau
        std::array<int,4>  tab;
        tab = { 1, 2, 3, 4 };    // ou bien tab[0]=1; tab[1]=2; ...
        v.push_back( tab );
        
        // ou les valeurs ne sont ajoutées qu'après agrandissement du vector (non optimal)
        v.push_back( {} );       // ajout d'une ligne tableau pré-rempli à zéro
        std::array<int,4>&  tbr = v.back();  // se placer sur la dernière ligne
        tbr = { 7, 8, 9, 10 };   // remplir,  ou bien : tbr[0]=1; ...
        
        // on peut aussi ajouter en une fois N lignes ayant les même valeurs
        v.resize( v.size()+N, { 1, 2, 3, 4 } );   // 
        
        // ou d'autres combinaisons ...
        • Partager sur Facebook
        • Partager sur Twitter

        En recherche d'emploi.

          24 septembre 2018 à 0:22:41

          Et puis, mais c'est probablement équivalent, un peu de maths: la taille d'un tableau de x lignes de y colonnes est x*y, on peut donc le remplacer par un tableau de taille x*y. Il s'en suit que je peux facilement déduire une fonction p qui me donne la case du tableau en fonction de x et y:

          p(x,y) = x  * nombre de colonnes + y

          et la fonction inverse

          ip(v) = div(v /nombre de colonnes)

          où div est la division entière (on dit aussi division euclidienne), celle que tu appris à l'école primaire, x est le résultat, y est le reste.

          La conclusion de ça, c'est que je ne vais pas me faire chier avec un tableau 2D, un tableau 1D fera parfaitement l'affaire, ça trombe bien std::vector gère parfaitement bien les tableaux 1D ^^

          -
          Edité par int21h 24 septembre 2018 à 1:07:29

          • 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
            6 octobre 2018 à 14:34:33

            J'ai trouvé ma réponse, merci beaucoup pour votre aide !!
            • Partager sur Facebook
            • Partager sur Twitter

            Tableau 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