[C++11] Queue / priority_queue et templates
Bonjour,
J'ai un algorithme identique qui utilise soit une queue soit une priority_queue et je voudrais généraliser cet algorithme pour qu'il fonctionne avec l'un ou l'autre des conteneurs. Voilà l'algo :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| Fonction solve(file f, Noeud initial)
current : Noeud // type
current <--- initial
enfiler(current, f)
TANT QUE (!vide(f))
current <--- defiler(f) // récupère le 1er noeud de la file ou le noeud avec le cout le plus faible dans le cas de la priority_queue
POUR CHAQUE (succ : findSuccessors(current))
enfiler(succ, f)
FIN POUR
FIN TANT QUE
FIN |
Le problème est que dans le cas d'un queue pour défiler un Noeud, on utilise la fonction front() et dans le cas d'un priority_queue, elle s'appelle top() ... Y'a t-il un moyen de généraliser cette fonction solve à l'aide de template par exemple ? (je préfererais éviter de créer d'autres classes avec du polymorphisme pour résoudre ce problème si possible...)
J'espère que c'est clair ;)
Merci d'avance :)