bonjour
j aimerais savoir comment parcourir un tableau dynamique defini comme suit
comment trouver sa taille a un moment donner ???
Code : Sélectionner tout - Visualiser dans une fenêtre à part string *pointeurNom = new string [10];
bonjour
j aimerais savoir comment parcourir un tableau dynamique defini comme suit
comment trouver sa taille a un moment donner ???
Code : Sélectionner tout - Visualiser dans une fenêtre à part string *pointeurNom = new string [10];
Tu doit conserver toi meme le nombre d'elements alloues dans un array dynamique si tu veux l'utiliser plus tart.
il nexiste pas de methode du genre capacity que l on peux lui appliquer
si la reponse est non pouvait on le faire s il etait dynamique
oups je voulais dire pouvais t on le faire s il etais statique
Il n'existe pas de methode "capacity" car un tableau dynamique n'est en fait qu'un pointeur sur le premier élément du tableau.il nexiste pas de methode du genre capacity que l on peux lui appliquer
Par contre au lieu d'utiliser des tableaux dynamiques utilise plutot des vecteurs :et tu auras des methodes qui te donneront le nombre d'objets du vecteur et donc tu pourras faire une fonction "capacity" facilement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 vector<string> pointeurnom; ou vector<string*> pointeurnom;
http://c.developpez.com/faq/cpp/?page=STL#STL_vector
Et n'oublie pas de rechercher sur le forum avant de poster :
http://www.developpez.net/forums/viewtopic.php?t=345679
mais moi je veux limiter la taille de mon tableau a 10 element
c est possible de le faire avec un vecteur
ben alors pourquoi t'embetes-tu avec un tableau dynamique ??Envoyé par harris_macken
utilise simplement un tableau statique de 10 éléments, même si tu ne le remplis pas completement par la suite. Pour un si petit tableau, ce n'est pas grave![]()
Oui biensur que tu peux.
Faut juste faire une verif sur la taille du vecteur avant d'ajouter un nouvel élément.
Par exemple tu fais :
Avant chaque ajout dans le vecteur, tu vérifies que tu as encore de la place dans ton vecteur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 vector<string*> vecteur_string; if (vecteur_string.size() < 10) vecteur_string.push_back("un element");
Envoyé par hamster
j'allais le dire tu m'as devancé hamster
![]()
c est tout a fait vrai
merci
Envoyé par niglo
![]()
Deux remarques, liées.
- Ca ne compilera pas. Il n'existe rien qui convertisse implicitement un char const[] en std::string*.
- Les chaines C++ ont une sémantique de valeur. C'est fait pour être utilisé. Pas pour être balayé par la réintroduction du pointeur que l'on avait fait exprès de cacher.
=>Sans étoiles. Jamais d'étoile. Si on pense en avoir besoin, il y a de fortes chances que cela soit d'autre chose que l'on ait en fait besoin.
Code : Sélectionner tout - Visualiser dans une fenêtre à part std::vector<std::string>
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...
Pour des vecteurs de taille fixe (!= de taille limitée à un max), il peut être intéressant de ne pas utiliser vector qui fait de l'allocation dynamique inutile dans ce cas. boost::array (www.boost.org) propose une classe avec une syntaxe à la vector, mais une taille fixe passée en argument template.
Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.
Partager