Réinitialisation vector [RESOLU] - C++ - Programmation
Marsh Posté le 17-03-2007 à 19:56:02
salut !
Ben, au lieu de faire un resize(nb+1); et un tab.at(nb)=val tu peux tout simplement utiliser la méthode phush_back()
ainsi tu ferai un tab.push_back(nb); et ça te met ton entier nb a la fin du vector (après l'avoir agrandit)
[edit] oops, pardon j'avais mal lut, ce que tu as écrit. Pour réinitialiser ton tableau, tu as juste a appeler la méthode clear() après être sorti de ton deuxième while()
Marsh Posté le 17-03-2007 à 20:14:06
Amonchakai a écrit : Pour réinitialiser ton tableau, tu as juste a appeler la méthode clear() après être sorti de ton deuxième while() |
Ben oui. J'ai pourtant cherché (pas assez apparemment) dans les tutos mais j'avais pas trouvé ce "clear". C'est rageant de ne pas connaître toutes les possibilités des outils de la libC++. Et le man ne peut rien pour moi...
Merci.
Marsh Posté le 17-03-2007 à 21:19:05
IrmatDen a écrit : Le site concernant la STL chez sgi est relativement correct pour servir d'aide mémoire |
Ah oui, effectivement il a l'air très riche d'enseignements...
Merci
Marsh Posté le 17-03-2007 à 19:47:24
Bonjour
Bien que connaissant assez bien le C, je suis débutant en C++ et j'ai un soucis de débutant avec les vecteurs
Mon problème est que je dois remplir un tableau de valeurs récupérées, puis traiter le tableau puis le re remplir de 0 et ce plusieurs fois.
J'avais d'abord utilisé un simple tableau de 100 cases => int tab[100] en me disant "de toute façon, pour les tests, je n'aurais jamais plus de 100 valeurs" et j'ai programmé ainsi
int tab[100]
tq besoin
faire
nb=0
tq valeur faire
tab[nb]=valeur
nb++
fin faire
traiter les "nb" valeurs du tableau puis recommencer
fin faire
Ensuite, une fois les tests faits, je me suis dit que puisque les vecteurs existaient, autant les utiliser => je m'affranchirais ainsi de ce "100" limité et j'ai donc voulu remplacer par des vecteurs. Le problème, c'est qu'en faisant du push; je ne réinitialisais jamais mon tableau. J'ai donc fait un truc qui ressemble à ceci
std::vector <int> tab
tq besoin
faire
nb=0
tq valeur faire
tab.resize(nb + 1)
tab.at(nb)=valeur
nb++
fin faire
traiter les "nb" valeurs du tableau puis recommencer
fin faire
Bon, ça marche mais je sens qu'on devrait pouvoir faire "moins crade". Malheureusement je ne connais pas assez bien les vectors pour trouver mieux.
Merci
Message édité par Sve@r le 19-03-2007 à 22:13:55
---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.