C++ set Recherche dans 2 sets :)
Résolu
velderama
Messages postés
199
Date d'inscription
Statut
Membre
Dernière intervention
-
velderama Messages postés 199 Date d'inscription Statut Membre Dernière intervention -
velderama Messages postés 199 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je debute par rapport aux Stl et j'aimerai trouver les mots presents a la fois dans les 2 set (s et s2)
Pour cela j'ai une fonction qui prend 2 arguments de type set et qui affiche les mots
presents dans les 2...(jespere que vous suiviez ;) )
J'ai :
Et la j'ai des doute je suis meme sur ca ne passe pas ! Ai-je oublié quelque chose?
Merci
Je debute par rapport aux Stl et j'aimerai trouver les mots presents a la fois dans les 2 set (s et s2)
Pour cela j'ai une fonction qui prend 2 arguments de type set et qui affiche les mots
presents dans les 2...(jespere que vous suiviez ;) )
J'ai :
void presence(set<string> &s,set<string> &s2){ for ( set<string>::iterator it = s.begin(); it != s.end(); ++it ) { cout<<"Mot dans les 2 :"<<endl; if( s2.find(it) != s2.end){ //si on a trouve le mot cout<<" "<<*it<<end;//afficher le mot }//fi }//for }
Et la j'ai des doute je suis meme sur ca ne passe pas ! Ai-je oublié quelque chose?
Merci
A voir également:
- C++ std::set insert
- Set-top box - Accueil - Box & Connexion Internet
- Touche insert - Guide
- Disk boot failure insert system disk and press enter - Guide
- Insert boot media in selected boot device and press a key ✓ - Forum Windows 10
- Activer touche insert sur ASUS UX32A - Forum Clavier
4 réponses
Hello,
vous allez pas me croire... j'ai passé 2 heures avant de voir le probleme ! ;) (meme pas mal :p)
En fait j'ai oublié de faire *it et aussi les parentheses dans end
au final
Par contre pour les templates...si kelkun a une idée?
vous allez pas me croire... j'ai passé 2 heures avant de voir le probleme ! ;) (meme pas mal :p)
En fait j'ai oublié de faire *it et aussi les parentheses dans end
au final
void presence(set<string> &s,set<string> &s2){ for ( set<string>::iterator it = s.begin(); it != s.end(); ++it ) { cout<<"Mot dans les 2 :"<<endl; if( s2.find(*it) != s2.end()){ //si on a trouve le mot cout<<" "<<*it<<end;//afficher le mot }//fi }//for }
Par contre pour les templates...si kelkun a une idée?
Il faut faire deux find (un dans chaque set). Un find qui ne trouve pas retourne l'iterator end()
https://community.hpe.com/t5/custom/page/page-id/HPPSocialUserSignonPage?redirectreason=permissiondenied&referer=https%3A%2F%2Fcommunity.hpe.com%2Ft5%2FServers-Systems-The-Right%2FSGI-com-Tech-Archive-Resources-now-retired%2Fba-p%2F6992583
Exemple :
Si tu dois faire beaucoup de vérification de ce genre il est a priori plus rentable de construire d'abord l'intersection de s1 et s2 puis faire la recherche dans cet ensemble
Bonne chance
https://community.hpe.com/t5/custom/page/page-id/HPPSocialUserSignonPage?redirectreason=permissiondenied&referer=https%3A%2F%2Fcommunity.hpe.com%2Ft5%2FServers-Systems-The-Right%2FSGI-com-Tech-Archive-Resources-now-retired%2Fba-p%2F6992583
Exemple :
#include <set> #include <iostream> #include <string> int main(){ std::set<std::string> s1,s2: s1.insert("tapir"); s1.insert("guepard"); s1.insert("girafe"); s2.insert("tapir"); s2.insert("lion"); s2.insert("gazelle"); const std::string s = "tapir"; if(s1.find(s) != s1.end() && s2.find(s) != s2.end()){ std::cout << s << " est dans s1 et s2" << std::endl; }else{ std::cout << s << " n'est pas dans s1 et s2" << std::endl; } return 0; }
Si tu dois faire beaucoup de vérification de ce genre il est a priori plus rentable de construire d'abord l'intersection de s1 et s2 puis faire la recherche dans cet ensemble
std::set<std::string> s1_s2; std::set<std::string>::const_iterator sit (s1.begin()), send(s1.end()); for(;sit!=send;++sit){ const std::string & s = *sit; if(s2.find(s) != s2.end()) s1_s2.insert(s); } // s1_s2.find("tapir") == s1_s2.end() ?
Bonne chance
Merci mamimando !
Quelqu'un s'y connait en encodage de fichier ? il peut repondre sur ce lien :
http://www.commentcamarche.net/forum/affich 6095574 c encodage iso latin1 utf8#dernier
Merci
Quelqu'un s'y connait en encodage de fichier ? il peut repondre sur ce lien :
http://www.commentcamarche.net/forum/affich 6095574 c encodage iso latin1 utf8#dernier
Merci