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 :

Conteneur pour un tableau à 2 dimensions


Sujet :

SL & STL C++

  1. #1
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 390
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 390
    Points : 20 491
    Points
    20 491
    Par défaut Conteneur pour un tableau à 2 dimensions
    Hello, j'ai besoin d'un "vecteur de vecteur" bref un tableau à 2 dimensions
    Donc j'ai déclaré un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    std::vector<std::vector<string>> vecteur;
    ( ou bien avec des std::list)

    Cela fonctionne parfaitement.
    Y-a-t-il un conteneur plus élégant que cela?
    J'utilise la STL de VC++6.0
    Merci pour la réponse

  2. #2
    Membre chevronné
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Points : 2 205
    Points
    2 205
    Par défaut
    Sa dépend vraiment ce que tu cherches. La taille est connue a la compilation (te connaissant je pense que tu posterais pas ici si c'était le cas, mais quand même).

    Les lignes sont toutes de même tailles? (comprendre, est ce que ça peut être vu comme une matrice quoi...)
    Sa va être des gros gros vector ou petit? Tu fais beaucoup d'opérations dessus?


    (ouai ça fait beaucoup de question, mais je suis en général assez réticent à avoir du vector de vector, ils sont pas vraiment adapté pour ça et niveau vitesse c'est pas toujours ce qu'il y'a de mieux).

  3. #3
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 629
    Points : 30 692
    Points
    30 692
    Par défaut
    Salut,

    Je ne suis pas non plus particulièrement partisan du fait d'avoir des vecteurs de vecteurs "tels quels"...

    Selon le cas:

    as-tu envisagé d'utiliser un vecteur de Lignes * colonnes éléments

    Ne serait il pas opportun d'encapsuler la collection (vecteur ou liste) permettant de représenter les colonnes d'une ligne dans... une classe n'exposant que les comportements intéressant

    Si les dimensions sont connues à la compilation, que penses tu de boost.multi_array

    Les alternatives existent, mais, l'un dans l'autre, le choix entre celles-ci sera essentiellement orienté par... l'objectif que tu cherche à atteindre dans ta situation particulière

  4. #4
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 390
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 390
    Points : 20 491
    Points
    20 491
    Par défaut
    Salut merci pour les réponses non les limites ne sont pas connues à la compilation d'ou l'intérêt d'un tableau à taille variable et expensible.
    Les performances ne sont pas importantes.
    Je voulais une réponse simple du genre "prends un std::machin"

    Les lignes sont toutes de même tailles? (comprendre, est ce que ça peut être vu comme une matrice quoi...)
    Sa va être des gros gros vector ou petit? Tu fais beaucoup d'opérations dessus?
    non c'est pour lire des fichiers textes.
    Pour dire la vérité c'est pour charger des fichiers textes pour un jeu vidéo.
    A chaque niveau est associé un fichier texte de description par exemple level1.dat => level1.txt.
    Je veux ensuite l'afficher à l'écran.

    (ouai ça fait beaucoup de question, mais je suis en général assez réticent à avoir du vector de vector, ils sont pas vraiment adapté pour ça et niveau vitesse c'est pas toujours ce qu'il y'a de mieux).
    ok mais quoi prendre alors ?



    Merci encore la solution que j'ai fonctionne bien

  5. #5
    Membre chevronné
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Points : 2 205
    Points
    2 205
    Par défaut
    Si les performances ne sont pas importantes garde ta solution. A fortiori si elle est déjà implémenté!

    Ps : je peux me tromper mais j'aurais plutôt vu le contenu d'un fichier texte comme un vector de string non?

  6. #6
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut
    Dans le cas où les lignes n'ont pas toutes la même taille, vector de vector ne me choque pas... Ce sera tellement plus simple.
    Si tu prends une interface bien "designée" (comprendre : abstraction indépendante de l'implémentation), alors il sera toujours temps plus tard d'améliorer ce code si tu t'aperçois que c'est ton goulot d'étranglement.

    Bonne continuation,

    Poukill

  7. #7
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 390
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 390
    Points : 20 491
    Points
    20 491
    Par défaut
    Citation Envoyé par Goten Voir le message
    Ps : je peux me tromper mais j'aurais plutôt vu le contenu d'un fichier texte comme un vector de string non?
    Absolument ! Mais comment faire si on en a plusieurs ?

    Citation Envoyé par poukill Voir le message
    Si tu prends une interface bien "designée" (comprendre : abstraction indépendante de l'implémentation), alors il sera toujours temps plus tard d'améliorer ce code si tu t'aperçois que c'est ton goulot d'étranglement.
    Poukill
    merci pour la réponse mais j'ai une conception plus simpliste des choses je suis tout seul sur mon projet de jeu
    dans la boite ou je bosse actuellement on est 15 le projet doit faire des milliers de lignes de code en C++ et personne n'a jamais entendu parler d'UML ni d'abstraction
    Mais c'est un apparté

  8. #8
    Débutant Avatar de razily
    Inscrit en
    Février 2009
    Messages
    376
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 376
    Points : 154
    Points
    154
    Par défaut Conteneur pour un tableau à 2 dimensions
    en haut tu mets :
    using namespace std ;(et comme çà t'évites d'écrire de temps en temps std:: ) [3DArchi : pour une discussion sur using namespace cf cette discussion]

    pour ton vecteur à 2 dimensions :
    tu le déclares comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    vector<vector<string> > SS(2,vector<string>(2)) ;
     
    ou 
    vector<vector<string> > SS(2,vector<string>(2,0)) ;
    le 0 ici c'est pour dire que tu l'initialises à 0

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

Discussions similaires

  1. Programme moulinette pour réorganisation tableau 2 dimensions
    Par quentin31000 dans le forum Général Python
    Réponses: 8
    Dernier message: 28/06/2013, 10h33
  2. Liberation memoire pour un tableau 2 dimensions
    Par alex01pernot dans le forum Débuter
    Réponses: 5
    Dernier message: 20/04/2010, 19h05
  3. masque gaussien pour un tableau à une dimension
    Par bilzzbenzbilz dans le forum Traitement d'images
    Réponses: 1
    Dernier message: 20/02/2009, 15h04
  4. Réponses: 7
    Dernier message: 09/02/2009, 14h28

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