C++ set Recherche dans 2 sets :)
Résolu/Fermé
velderama
Messages postés
199
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
-
23 avril 2008 à 17:37
velderama Messages postés 199 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 11 mai 2011 - 24 avril 2008 à 17:37
velderama Messages postés 199 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 11 mai 2011 - 24 avril 2008 à 17:37
A voir également:
- C++ std::set insert
- Std::cout - Forum Programmation
- Touche insert - Guide
- Set warranty bit kernel ✓ - Forum Samsung
- Get et set en java ✓ - Forum Java
- Insert where - Forum MySQL
4 réponses
velderama
Messages postés
199
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
10
24 avril 2008 à 10:37
24 avril 2008 à 10:37
Quelqu'un n'aurait-il pas une idée de ma faille?
velderama
Messages postés
199
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
10
24 avril 2008 à 10:56
24 avril 2008 à 10:56
1 autre question : (rien a voir je suis d'accord !)
-Les templates ca sert essentiellement a quoi?
-Les templates ca sert essentiellement a quoi?
velderama
Messages postés
199
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
10
24 avril 2008 à 11:36
24 avril 2008 à 11:36
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?
mamiemando
Messages postés
32283
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
17 mars 2023
7 572
24 avril 2008 à 17:30
24 avril 2008 à 17:30
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
velderama
Messages postés
199
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
10
24 avril 2008 à 17:37
24 avril 2008 à 17:37
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