[C++] Optimisation de recherche d'un critere ds une liste

Optimisation de recherche d'un critere ds une liste [C++] - C++ - Programmation

Marsh Posté le 10-09-2003 à 16:22:40    

Desole si le titre pas assez explicite ou a cote de la plaque
 
Donc, voila une petite question, j'ai une fonction du genre
 

Code :
  1. bool CService::m_fnbIsMCDUInLog(const std::string& sMCDU)
  2. {
  3. list<string>::iterator it = m_MCDUList.begin();
  4. while (it != m_MCDUList.end()) {
  5.  if ((*it).compare(sMCDU) == 0)
  6.   return true;
  7.  ++it;
  8. }
  9. return false;
  10. }


Avec m_MCDUList defini comme std::list<std::string>  
 
Y a t'il un moyen plus efficace de rechercher un tel critere quitte a utiliser autre chose qu'une liste ?


Message édité par VisualC++ le 10-09-2003 à 16:23:02
Reply

Marsh Posté le 10-09-2003 à 16:22:40   

Reply

Marsh Posté le 10-09-2003 à 16:25:37    

VisualC++ a écrit :

Desole si le titre pas assez explicite ou a cote de la plaque
 
Donc, voila une petite question, j'ai une fonction du genre
 

Code :
  1. bool CService::m_fnbIsMCDUInLog(const std::string& sMCDU)
  2. {
  3. list<string>::iterator it = m_MCDUList.begin();
  4. while (it != m_MCDUList.end()) {
  5.  if ((*it).compare(sMCDU) == 0)
  6.   return true;
  7.  ++it;
  8. }
  9. return false;
  10. }


Avec m_MCDUList defini comme std::list<std::string>  
 
Y a t'il un moyen plus efficace de rechercher un tel critere quitte a utiliser autre chose qu'une liste ?


 
Tu peux trier ta liste et faire une recherche dichotomique  [:spamafote]


---------------
Le Tyran
Reply

Marsh Posté le 10-09-2003 à 16:34:15    

Effectivement j'avais pas envisager le tri, merci je vais regarder un peu si niveau perf ca soulage

Reply

Marsh Posté le 10-09-2003 à 16:55:16    

LetoII a écrit :


 
Tu peux trier ta liste et faire une recherche dichotomique  [:spamafote]  


 
Ca marche sur une liste chainée une recherche dichotomique ? C'est pas banal :D
 
Faudra peut-être passer au vector et penser à utiliser les algorithmes standards !

Reply

Marsh Posté le 10-09-2003 à 17:47:05    

bah ca depend ce que tu veux faire, mais un hash_set te fait une recherche a cout constant :)


---------------
EurOPiUM, leader de WormsHL
Reply

Marsh Posté le 10-09-2003 à 17:51:20    

Kristoph a écrit :


 
Ca marche sur une liste chainée une recherche dichotomique ? C'est pas banal :D
 
Faudra peut-être passer au vector et penser à utiliser les algorithmes standards !


 
effectivement je l'ai pas précisé, ça me semblait implicite  [:spamafote]


---------------
Le Tyran
Reply

Marsh Posté le 10-09-2003 à 20:48:23    

sinon t'es find/search dans stl au lieu de réécrire mais par définition, la recherche dans une liste est fonction de la taille

Reply

Marsh Posté le 10-09-2003 à 21:16:16    

c'est quoi une recherche dichotomique ?


---------------
-( BlackGoddess )-
Reply

Marsh Posté le 10-09-2003 à 23:48:48    

BlackGoddess a écrit :

c'est quoi une recherche dichotomique ?


tiens, choisi ton explication :
http://www.google.com/search?q=rec [...] 8&oe=utf-8
 
par contre tu devrais comencer par demander "c'est quoi une recherche google ?"

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed