Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1020 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Réinitialisation vector [RESOLU]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Réinitialisation vector [RESOLU]

n°1529977
Sve@r
Posté le 17-03-2007 à 19:47:24  profilanswer
 

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.
mood
Publicité
Posté le 17-03-2007 à 19:47:24  profilanswer
 

n°1529980
Amonchakai
Posté le 17-03-2007 à 19:56:02  profilanswer
 

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()

Message cité 1 fois
Message édité par Amonchakai le 17-03-2007 à 19:59:48
n°1529986
Sve@r
Posté le 17-03-2007 à 20:14:06  profilanswer
 

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.


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1529988
IrmatDen
Posté le 17-03-2007 à 20:17:28  profilanswer
 

Le site concernant la STL chez sgi est relativement correct pour servir d'aide mémoire :)

n°1529999
Sve@r
Posté le 17-03-2007 à 21:19:05  profilanswer
 

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...  :sol:  
Merci :jap:


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Réinitialisation vector [RESOLU]

 

Sujets relatifs
[c] liste simplement chainé==> pb [résolu==> merci][Résolu] Impossible d'installer PHP-MySQL sur mon micro
[RESOLU] connection socket[Résolu] Gros problème de cache
[résolu] Variables dynamiques dans des classes[javascript][résolu] charger une nouvelle page avec window.onload
VBA access execution de macro [résolu][Résolu] [Divers] crash d'un programme (Newsleecher)
[Résolu] Remplacement d'une chaine par <BR/>[résolu] pbm session
Plus de sujets relatifs à : Réinitialisation vector [RESOLU]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR