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

SL & STL C++ Discussion :

Liste de tableaux d'entier


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9
    Par défaut Liste de tableaux d'entier
    Salut,

    je cherche une solution pour faire une liste de tableaux d'entiers, en gros j'aimerais pouvoir faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    int tab[2];
     
    tab[0]  = 2;
    tab[1] = 3;
     
    std::list<int[2]> l;
    l.push_back(tab);
    Déclaré comme cela, le compilateur renvoie une erreur, donc si quelqu'un a une solution je suis preneur...

    Merci d'avance.

  2. #2
    Membre très actif

    Inscrit en
    Juillet 2008
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 186
    Par défaut
    Bonjour

    Et pourquoi pas : std::list<std::vector<int> > ?

    Didier

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Utilises boost::array:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include<iostream>
    #include <list>
    #include <boost/array.hpp>
     
    typedef boost::array<int,2> tab_2i;
    int main()
    {
       std::list<tab_2i> l_list;
       tab_2i l_tableau = {{1,2}};
       l_list.push_back(l_tableau);
     
       return 0;
    }
    Sinon, il tu peux toujours définir un allocator pour ton tableau, mais là, dès que c'est du maison, risque de bug!

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9
    Par défaut
    Car en fait je connais la taille de mon tableau donc j'aurais aimé déclarer juste un tableau d'entiers statique. Mais c'est peut-être aussi bien avec un vector ?

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Par défaut
    Un petit bout de code qui passe sou CV :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    	int tab1[2]; 
    	tab1[0] = 0; tab1[1] = 1; 
     
     
    	std::list <int* > maliste;
    	maliste.push_back( tab1); 
    	maliste.push_back( tab1); 
    	maliste.push_back( tab1); 
     
    	std::list <int* >::iterator it; 
    	it = maliste.begin(); 
     
    	it++; 
     
    	int * t = *it; 
    	std :: cout << t[0] << t[1] ;
    Il n'y a pas de vérification de taille des tableaux, mais cela fonctionne.

  6. #6
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Mais il s'agit alors d'une liste de pointeurs, pas de tableaux. Par exemple le code maListe.first()[0]++ ne fournira pas le même résultat que le code équivalent avec list<vector<int> > ou list<array<int, 2> >
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9
    Par défaut
    Je pense utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    std::list<std::vector<int> >
    Merci pour vos réponses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 21/07/2008, 11h21
  2. [RTFTemplate] List avec tableaux
    Par maxf1 dans le forum Documents
    Réponses: 6
    Dernier message: 24/06/2008, 08h40
  3. Faire apparaître la liste des tableaux et des figures dans la TDM
    Par Aline2611 dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 7
    Dernier message: 07/06/2007, 15h11
  4. Liste des tableaux vides
    Par liberio dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 2
    Dernier message: 27/11/2006, 17h31
  5. Liste de tableaux et figures
    Par Aline2611 dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 1
    Dernier message: 22/09/2006, 15h27

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