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 :

allocation dynamique d'un tableau de taille non connue


Sujet :

C++

  1. #21
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Points : 1 051
    Points
    1 051
    Par défaut
    salut,

    generalement pour les tableau 2d de type "terrain", il est assez d'usage d'utiliser un tableau 1d ou toutes les donnees se suivent ligne par ligne.

    On accede aux donnees via :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for (int i = 0; i < width; ++i)
      for (int j = 0; j < height; ++j)
        tableaudobjets[j * width + i].getCeQueTuVeux();
    Ainsi tu peux parcourir un rectangle facilement.

    la contrainte est que ton width ne doit pas changer dans le temps ou alors tu doit refaire ton tableau ou vector.

    Tu peux organiser tes donnees de facon a les ranger colonnes par colonnes dans ce cas c'est la taille d'une colonne qui ne doit pas changer pour garantir l'acces correctement.

    Si a la fois le width et le height changent, ça ne marche pas.

  2. #22
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 69
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par TobyKaos
    Disons que j'ai une image composé de tuile (64*64 pixels), je ne souhaite charger en mémoire que une partie de mon image, cad une partie de tuiles. genre de 1000 à 2000 en x et 2000 à 5000 en Y ( en pixels).
    Et bien je ne vois pas ce qui te pose probleme ? Tu ne peux pas faire un truc du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    vector<vector<objet>> monVec;
     
    for (int i=1000; i<2000; i++) 
    {
        vector<objet> tab;
        for (int j=2000; j<5000; j++)
        {
             tab.push_back(image[i][j]);
        }
        monVec.push_back(tab);
    }

  3. #23
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 87
    Points : 56
    Points
    56
    Par défaut
    Oui, c'est ce que je vais faire mais avec un deque car je doit inseré et supprimer en début, en fin et accéder à un élément précis.

    Merci bien.

  4. #24
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 69
    Points : 56
    Points
    56
    Par défaut
    De rien, bon courage

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

    Informations professionnelles :
    Activité : aucun

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

    Ceci dit, les vector permettent également d'insérer un élément à un endroit précis.

    C'est plus gourmand en temps, du fait de la nécessité de décaler les éléments... mais selon ce que tu fais le plus... ca peut rester une alternative :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    monvect.insert(monvect.begin()+9,monobjet);//insere un élément entre
                                               // le 10eme et le 11eme
    Maintenant, si, de fait, tu effectue plus souvent une insertion entre deux éléments qu'un ajout en fin de vecteur, tu risque de voir les performances chuter...

    Mais là-dessus, seul un benchmark pourra te renseigner
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

Discussions similaires

  1. [XL-2010] Déclarer un tableau de taille non connue
    Par raphael.abulker dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/11/2014, 09h45
  2. Réponses: 67
    Dernier message: 13/02/2007, 18h08
  3. Réponses: 14
    Dernier message: 26/10/2006, 14h44
  4. Réponses: 13
    Dernier message: 01/10/2006, 00h25
  5. [PRO*C] Allocation dynamique d'un tableau de VARCHAR
    Par NéalZheimer dans le forum Interfaces de programmation
    Réponses: 5
    Dernier message: 07/07/2006, 13h02

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