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 :

Pb tableau dynamique


Sujet :

C++

  1. #1
    Kea
    Kea est déconnecté
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Pb tableau dynamique
    Bonjour ,

    J'ai un petit problème de développement... que je n'arrive pas à résoudre.
    Je sais créer un tableau dynamique mais seulement en "mode vecteur" :
    par exemple :
    String* tab;
    int nb=StrToInt(Edit1->Text);
    tab= new String [nb];
    tab[2]="essai";
    ShowMessage(tab[2]);
    delete[]tab;
    Ca ca marche.. mais ce que je voudrai c'est un tabelau dynamique avec ligne et colonne : c'est a dire que au cours de mon programme je voudrais pouvoir dire un truc de ce style tab= new String [nb][nb];
    est ce possible ? Et que faut-il modifier ????
    Merci

  2. #2
    Membre régulier Avatar de Blowih
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 122
    Points : 115
    Points
    115
    Par défaut
    pourquoi ne pas essayer avec std::vector et faire un vecteurs( pour les lignes par ex) de vecteur (pour les colone)?

  3. #3
    Kea
    Kea est déconnecté
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    je ne suis pas assez forte en C++ pour comprendre ce que tu veux dire

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920

  5. #5
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Salut,

    alors pour commencer, le code que tu a posté est du C, et non du C++. En effet, un tableau de int du type int montableau[5]; n'a rien d'orienté objet.
    En c++, on utilise des objets tant que c'est possible. Pour un tableau, il y a la classe vector. Cette classe est définie dans la bibliothèque standard (std lib), c'est pour cela que Blowih a écrit std::vector (le :: est l'opérateur de portée)

    Dans un premier temps, tu peux consulter la FAQ

    [edit]erf, grillé [/edit]
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  6. #6
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Points : 1 956
    Points
    1 956
    Par défaut
    Bonjour,

    pour une allocation sans les vectors de la STL, ca ressemble à ça :

    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
    17
    18
    19
    20
    21
    22
    23
     
    int main(void)
    {
     
        const unsigned int Lignes = 10;
        const unsigned int Colonnes = 10;
     
     
        // Allocation du tableau "principal"
        int ** Matrice = new int*[Lignes];
     
        // Allocation de chaque membre du tableau "principal"
         for (unsigned int i = 0; i < Lignes; ++i)
            Matrice[i] = new int[Colonnes];
     
        // effacement
        for (unsigned int i = 0; i < Lignes; ++i)
            delete[] Matrice[i];
     
        delete[] Matrice;
     
        return 0;
    }
    Je crois que ce que Blowih voulait dire, c'est que tu peux utiliser les vecteurs (tableau 1D) de la STL pour faire des matrices (tableau 2D) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #include <vector>
     
    //[cut]
     
        int TailleX = 3;
        int TailleY = 5;
        std::vector<std::vector<int> > Matrice (TailleX, std::vector<int>(TailleY));
    C'est franchement plus simple avec les vectors qui offrent la puissance de la STL d'une manière général.

    Sinon, tu peux toujours utiliser boost et ses multi-arrays :

    http://www.boost.org/libs/multi_array/doc/index.html

    [edit] C'était dans la FAQ...

  7. #7
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Pour allouer correctement un tableau à plusieurs dimensions avec new, c'est comme ceci :
    http://c.developpez.com/faq/cpp/?pag..._new_array_dim

  8. #8
    Kea
    Kea est déconnecté
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Merci
    Je vais essayer
    Merci pour toutes ces réponses
    @+

  9. #9
    Kea
    Kea est déconnecté
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Merci a tous
    Ca marche...
    Merci A tous

  10. #10
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Citation Envoyé par r0d
    alors pour commencer, le code que tu a posté est du C, et non du C++.
    C'est bien du C++. Mais la gestion manuelle de la mémoire introduit toutes sortes de difficultées inutilement complexes quand on voit les facilités dont on dispose.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/03/2015, 18h31
  2. récupérer la memoire et tableau dynamique
    Par Guigui_ dans le forum Langage
    Réponses: 6
    Dernier message: 06/01/2003, 08h02
  3. AFFICHER UN TABLEAU DYNAMIQUE
    Par ghassenus dans le forum Langage
    Réponses: 2
    Dernier message: 28/12/2002, 14h19
  4. [Kylix] tableau dynamique
    Par sdoura2 dans le forum EDI
    Réponses: 1
    Dernier message: 31/10/2002, 08h57
  5. Réponses: 4
    Dernier message: 13/05/2002, 16h43

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