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

 C++ Discussion :

vector à plusieurs dimensions ?


Sujet :

C++

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 412
    Points : 149
    Points
    149
    Par défaut vector à plusieurs dimensions ?
    Hello

    je voudrais avoir un vector qui contienne 16 tableaux ?
    possible mais comment ?


    Merci d'avance

  2. #2
    Membre actif
    Homme Profil pro
    Consultant BigData
    Inscrit en
    Juillet 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant BigData

    Informations forums :
    Inscription : Juillet 2009
    Messages : 129
    Points : 280
    Points
    280
    Par défaut
    Vector étant un type que l'on peut spécifier avec le type des objets contenus, rien ne vous empêche d'utiliser un vecteur de vecteurs (ou plus simplement de tableaux).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    vector<vector<MyObject>> vectorOfVector;

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 48
    Points : 60
    Points
    60
    Par défaut
    Une matrice à seize dimension ?

    Voila pour une matrice de double à trois dimensions;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    std::vector<std::vector<std::vector<double> > > matrix(10, std::vector<std::vector<double> >(10, std::vector<double>(10,0.)));
    Toutes les valeurs de la matrice sont initialisées à 0. La taille est également donnée à la construction soit 10x10x10.
    Déjà qu'avec trois dimensions c'est assez imbuvable, j'imagine même pas avec 16 !

  4. #4
    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
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    Citation Envoyé par omc24 Voir le message
    Déjà qu'avec trois dimensions c'est assez imbuvable, j'imagine même pas avec 16 !
    Probablement. Mais j'ai l'impression qu'une matrice à 2 dimensions doit suffire. Oussapik propose une solution tout à fait pertinente de vecteur de vecteur. Si les tailles sont fixes et connues à la compilation, penser std::array en C++0x : std::array<std::vector<int>,16> ou std::array<std::array<int,16>,16> par exemple.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour omc24,
    Je me demande si vous ne confondez pas plusieurs notions :
    Une matrice est un tableau à 2 dimensions, c'est à dire des lignes et de colonnes. Elle représente une application dans un espace vectoriel de n dimensions. Donc la matrice représentative de l'application sera probablement de n x n.
    Par exemple pour une application en 3D, une matrice de rotation pourrait être de 3 x 3.

    Dans votre question initiale, vous avez besoin de 16 tableaux soit T1, T2, T3....T16.
    Que vous écrirez probablement T[16], mais ce n'est pas du tout un tableau à 16 dimensions, qui pourrait s'écrire T[][][]...[] 16 fois.
    Si votre tableau travaille dans un plan, il sera peut-être à 2 dimensions.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 48
    Points : 60
    Points
    60
    Par défaut
    Oui en effet, je n'avais pas les yeux en face des trous ce matin
    C'est le titre du topic qui m'a induit en erreur...
    (Dimension != Taille)

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 412
    Points : 149
    Points
    149
    Par défaut
    Citation Envoyé par 3DArchi Voir le message
    Salut,
    Probablement. Mais j'ai l'impression qu'une matrice à 2 dimensions doit suffire. Oussapik propose une solution tout à fait pertinente de vecteur de vecteur. Si les tailles sont fixes et connues à la compilation, penser std::array en C++0x : std::array<std::vector<int>,16> ou std::array<std::array<int,16>,16> par exemple.
    bon effectivement un tableau a 16 dimension me semble difficile a gérer.

    bon ces tableau son destiner a une base de donnée sqlites
    le probleme est que:
    la structure est de 16 collonne.

    1 boucle insère les donnée pour la colonne A qui contien -> X élément
    chaque enregistrement lie tout les colonnes (toute on X élément )
    petit chéema:
    |-A-|-B-|-C
    |-1-|-0-|-typestring-|
    |-1-|-1-|-typestring2-|

    je peux pas mélanger un enregistrement a une autre

    |-A-|-B-|-C
    |-1-|-1-|-typestring-|
    |-1-|-0-|-typestring2-|

    j'insere tout les valeur dans la collonne A ,mai après pour synchroniser la colonne B ....
    mai je pense que je vai voir pour faire autrement

  8. #8
    Membre éprouvé Avatar de Steph_ng8
    Homme Profil pro
    Doctorant en Informatique
    Inscrit en
    Septembre 2010
    Messages
    677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant en Informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 677
    Points : 997
    Points
    997
    Par défaut
    Attention, on ne peut utiliser un tableau ou un conteneur que pour stocker des éléments du même type.
    Si l'on veut stocker un entier et une chaîne de caractères, c'est fichu !

    Utiliser une structure de 16 champs, un par colonne, devrait résoudre ton problème.
    En plus, ça te permettrait d'accéder à la valeur d'un tuple pour une colonne donnée par son nom (de colonne), et non pas par son indice.

  9. #9
    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
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    Plutôt qu'un tableau de tableau, pourquoi ne pas définir une structure qui correspond à un enregistrement, puis faire un tableau de cette structure.

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 412
    Points : 149
    Points
    149
    Par défaut
    l'idée est bonne je vai voir ce que cela peux donner
    Merci a tous pour vos réponse

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

Discussions similaires

  1. vector à plusieurs dimensions ?
    Par [Hugo] dans le forum SL & STL
    Réponses: 6
    Dernier message: 30/10/2006, 03h46
  2. Réponses: 7
    Dernier message: 19/01/2006, 18h57
  3. questions sur les tabs a plusieurs dimensions
    Par rosviper45 dans le forum C
    Réponses: 16
    Dernier message: 27/11/2005, 14h20
  4. tableau à plusieurs dimensions
    Par pekka77 dans le forum C
    Réponses: 11
    Dernier message: 07/02/2005, 19h42
  5. Tableaux à plusieurs dimensions
    Par Diabolik dans le forum Assembleur
    Réponses: 3
    Dernier message: 08/12/2003, 12h15

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