Je suis à la recherche d'un algorithme C++ astucieux/rapide, qui me permettrait de faire le regroupement de plusieurs listes d'objets lorsqu'elles contiennent des objets communs. Disons que j'ai N listes, chacune contenant 1..M objets (O) associés à un élément E :
[O1, O2] -> E1
[O3] -> E2
[O1, O4, O5] -> E3
[O2, O5] -> E4
[O3, O6] -> E5
Je souhaite les réorganiser de la manière suivante :
[O1, O2, O4, O5] -> [E1, E3, E4]
[O3, O6] -> [E2, E5]
Le résultat comporte tous les objets communs regroupés avec tous les éléments associés. Au final, aucun objet n'est partagé entre les listes.