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 :

tableau de string (declaration + remplissage)


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 296
    Par défaut tableau de string (declaration + remplissage)
    Bonjour,

    Est ce que ce code fonctionne pour declarer un tableau de string?
    Est ce que ce code fonctionne pour remplir un tableau de string?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    tabT[0]="toto";
    tabT[1]="titi";
    tabT[2]="tata";
    ...
    merci

  2. #2
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 142
    Par défaut
    Oui mais attention std::string ou string mais pas String

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    tabT[0]="toto";
    tabT[1]="titi";
    tabT[2]="tata";
    Ça fonctionne aussi

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

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Cela fonctionne effectivement, mais, l'utilisation de tableaux "C style" n'est clairement pas recommandée, surtout si tu prévois de devoir y placer des milliers d'éléments

    Surtout si les différentes chaines sont introduites à des moments différents (car réserver la place pour 100000 chaines et n'en placer que trois ou quatre, ca représente un sérieux gâchis de place en mémoire )

    A ce niveau, tu aurais largement intérêt à utiliser la classe vector, offerte par le standard dans l'espace de noms std par inclusion du fichier <vector>.

    Il s'agit d'une classe qui englobe l'ensemble des fonctionnalités que l'on peut attendre d'un tableau "C style" en apportant la sécurité et la facilité d'utilisation qui leur manque

    Cela te permettrait d'utiliser un code proche de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    std::vector<std::string> tab; // pas besoin de spécifier le nombre de chaines
                                 // la gestion de la mémoire se fait automatiquement
    tab.push_back("titi");
    tab.push_back("toto");
    tab.push_back("tutu");
    Maintenant, il n'est pas exclu que, selon ce que tu souhaite faire, un tableau ne soit pas le genre de conteneur le plus adapté...

    Tu peux donc te baser sur cette entrée de la FAQ afin de déterminer ce qui sera le plus adapté à ton problème
    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

  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
    Par défaut
    Citation Envoyé par koala01 Voir le message
    Surtout si les différentes chaines sont introduites à des moments différents (car réserver la place pour 100000 chaines et n'en placer que trois ou quatre, ca représente un sérieux gâchis de place en mémoire )
    Sauf si tu sais qu'au final tu auras bien 100000 éléments. A ce moment un reserve permet d'éviter de future réallocation. Soit dit en passant, 100 000 éléments, ça mériterait peut être aussi de réfléchir au stockage du contenu des chaînes.

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

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Citation Envoyé par 3DArchi Voir le message
    Sauf si tu sais qu'au final tu auras bien 100000 éléments. A ce moment un reserve permet d'éviter de future réallocation.
    N'oublie pas qu'un vector amorti le problème de l'allocation mémoire, et que tu peux de toutes manières demander de réserver l'espace pour un nombre particulier...

    Mais, quoi qu'il en soit: si le tableau reste "plutot vide" plus longtemps qu'il n'est rempli ou que 100 000 correspond à une valeur arbitraire pour être sur d'avoir la place, c'est du gâchis
    Soit dit en passant, 100 000 éléments, ça mériterait peut être aussi de réfléchir au stockage du contenu des chaînes.
    De toutes manières, en effet
    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

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

Discussions similaires

  1. Remplissage et appel d'un tableau de String
    Par HackerNet dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 01/11/2013, 18h17
  2. Remplissage d'un tableau à partir d'un tableau de String
    Par aljessy dans le forum Composants
    Réponses: 4
    Dernier message: 18/08/2012, 13h27
  3. Remplissage d'un tableau de string (débutant)
    Par valanagrid dans le forum C++
    Réponses: 4
    Dernier message: 12/11/2006, 18h39
  4. [JComboBox] Remplissage avec tableau de String
    Par linkit dans le forum Composants
    Réponses: 2
    Dernier message: 26/05/2005, 21h39
  5. [Collections] Tableau de String
    Par gexti dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 02/06/2004, 15h42

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