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

  FORUM HardWare.fr
  Programmation
  C++

  std::find dans un set

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

std::find dans un set

n°2144199
jetaimerog​er
Posté le 31-05-2012 à 18:47:27  profilanswer
 

Bonjour
debutante je souhaite parcourir le vecteur pour le comparer avec la liste set triée et trouver les elements commun
 

Code :
  1. struct ListeningPort
  2. {
  3.     std::string protocol;
  4.     std::string address;
  5. };
  6. ...
  7. vector<ListeningPort> ports = ...
  8. set<ListeningPort> listSortOld = ...
  9. vector<ListeningPort>::const_iterator i;
  10. FOR_EACH(i, ports)
  11. {
  12.   set<ListeningPort>::const_iterator trouve =  listSortOld.find(i); 
  13.   // en mettant des debug je remarque que rien ne n'affiche apres cette ligne ci dessus qui doit etre fausse car si je l'enleve mon debug plus loin //s'affiche pourtant j'ai pas d'erreur de compil POURQUOI CETTE LIGNE EST FAUSSE?
  14. }

 
 

mood
Publicité
Posté le 31-05-2012 à 18:47:27  profilanswer
 

n°2144224
killar89
Posté le 31-05-2012 à 23:44:08  profilanswer
 

Yo,
 
Ton set contient des "ListeningPort" et tu recherches dedans un "iterator".
Forcément il ne peut pas le trouver.
Le find d'un set doit prendre un parameter du type contenu dans le set.
Plus d'infos :
http://www.cplusplus.com/reference/stl/set/find/

n°2145320
Malkav
Posté le 11-06-2012 à 13:15:14  profilanswer
 

Si tu appellais ton iterator "it" et pas "i" tu serais peut être moins tenté de faire un find(i) dans ton std::set ;)
C'est aussi un peu ballot d'appeller ton set "listXXX"
 
tu devrais par exemple faire par souci de clarté:

Code :
  1. FOR_EACH(it, ports)
  2. {
  3.     const ListeningPort &curPort = (*it);
  4.     set<ListeningPort>::const_iterator itPortInSet = listSortOld.find(curPort);
  5.     // Ton code  
  6. }


Message édité par Malkav le 11-06-2012 à 13:16:48

---------------
Mes feedbacks * Ma galerie photo

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

  std::find dans un set

 

Sujets relatifs
find > exclure motifs fichiers & repertoires[Powershell] Methode .find pour trouver une expression exacte
[Résolu] Quote Execute + Find pour le listing de fichierMéthode Find avec condition
[résolu] ld.exe cannot find -lfilefonction find vba
Find in Files + printf ???Find + printf + contenu du fichier
Find in FilesFIND -ctime ne renvoi pas de resultat!!!
Plus de sujets relatifs à : std::find dans un set


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