Parcours d'arbre, pointeur sur fonction
Bonjour !
Dans le cadre de mes cours, je n'ai jamais eu l'occasion de voir les fonctionnalités "programmation fonctionnelle" du C++ et je cherche des pistes pour un certain algo. Voici le contexte.
Code:
1 2 3 4 5 6 7 8
|
class foo{
public:
void a(foo*); // fonctions
int b();
private:
HashTable<key, foo*> enfants;
} |
J'ai donc un arbre de foo, avec un nombre indéterminé de foo à chaque niveau.
Je voudrais une sorte de forEach qui appliquerais a() ou b() à chaque enfant et sous enfant de mon arbre. Une fonction qui ne sert qu'à parcourir l'arbre et appliquer une fonction membre à chaque élément (ou, éventuellement, à chaque élément répondant à un critère).
Par contre, je n'ai aucune idée de comment travailler avec des pointeurs sur fonction, etc.
Quelqu'un a une piste ?
Merci beaucoup d'avance !
EDIT : Je ne peux utiliser que Qt et la STL, puisque c'est dans le cadre d'un cours (je tiens à spécifier que ce n'est pas l'essence du cours du tout (c'est un cours d'OpenGL), c'est un petit ajout personnel, pour satisfaire ma curiosité et donner un plus value à mon apprentissage)