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

  FORUM HardWare.fr
  Programmation
  C++

  [C++] petite question sur les std::vectors

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] petite question sur les std::vectors

n°1786132
freewol
Ceci n'est pas une citation
Posté le 12-09-2008 à 15:58:25  profilanswer
 

Bonjour,
 
je souhaite avoir deux tables, une de noms et une de boolean (unsigned short), qui soient liées.
Par exemple
 

Code :
  1. vector<string> string_table;
  2. vector<unsigned short> boolean_table;
  3. string_table.push_back("toto" );
  4. boolean_table.push_back (0);
  5. string_table.push_back("tata" );
  6. boolean_table.push_back (1);


puis-je ensuite parcourir les deux tables de cette manière ? :

Code :
  1. for (unsigned int i = 0; i < string_table.size(); i ++)
  2.    if (boolean_table.at(i))
  3.        cout<<string_table.at(i) << "\n";


 
Merci d'avance :)

mood
Publicité
Posté le 12-09-2008 à 15:58:25  profilanswer
 

n°1786135
ptitchep
Posté le 12-09-2008 à 16:24:31  profilanswer
 

Tu devrais utiliser une hash map si chaque string correspond à un booléen.
Il existe un type bool en c++
\n s'écrit std::endl en c++
Il existe des itérateurs pour parcourir les containers de la stl.
il me semble que la methode size() recalcule à chaque fois la taille donc tu as du calcul inutile à chaque itération de boucle (à vérifier).
Sinon oui à vu de nez ça pourrait quand même marcher comme ça.


---------------
deluser --remove-home ptitchep
n°1786153
bjone
Insert booze to continue
Posté le 12-09-2008 à 17:02:28  profilanswer
 

qu'est-ce que tu veux faire ? la question qui t'a amené a cette solution ?


Message édité par bjone le 12-09-2008 à 17:02:39
n°1786154
freewol
Ceci n'est pas une citation
Posté le 12-09-2008 à 17:04:42  profilanswer
 

Bonjour,
 
pour bool et \n c'est accessoire ;)
 
Pour ma question, je veux être sûr que les deux éléments renvoyés par at avec le même index soient toujours cohérents, en gros, suis-je assuré que l'élément que j'ai rajouté en premier dans les deux tables sera toujours retourné par at(0) ?
Parce que si dans une table il devient à la "position 1" (renvoyé par at(1)) tandis que dans la seconde il reste en "position 0", ça ne fonctionnera plus !
 
Merci :)

n°1786155
bjone
Insert booze to continue
Posté le 12-09-2008 à 17:10:04  profilanswer
 

oui mais c'est a toi de faire les même opérations pour les deux vecteurs.
 
pour bool ce n'est pas accessoire, vu qu'il peut exister un vector<bool> optimisé dans l'implémentation de la stl que tu utilise.
 
maintenant, je répépète la question: qu'est-ce que tu veux faire ?

n°1786157
KangOl
Profil : pointeur
Posté le 12-09-2008 à 17:11:41  profilanswer
 

std::vector< std::pair< std::string, bool > >
 

n°1786162
freewol
Ceci n'est pas une citation
Posté le 12-09-2008 à 17:29:42  profilanswer
 

Ah ok pour bool, c'est noté.
Je vais utiliser vector < pair <> > comme suggéré par KangOl, merci :)
Ce que je veux faire, c'est décider dans ma function qui fait les ajoute les éléments au(x) tableau(x) si l'élément string sera ou non affiché par la fonction suivante.


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

  [C++] petite question sur les std::vectors

 

Sujets relatifs
[C] Allocation maximale (gcc sous cygwin)Access: question pour partage web
Question toute bete en htmlquestion sur le HTML
[C] sizeof et variable de structure[Resolu][C#, ASP.net / access] problème requete update
C'est la saint florentg!C# comparativement à Java
[C/C++] controller le preprocesseurprogrammation C
Plus de sujets relatifs à : [C++] petite question sur les std::vectors


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