Das Problem einfach genug sieht, im Grunde habe ich eine Folge von Sequenzen, so etwas wie:Konvertieren eine mpl Folge von Sequenzen in einen Trie
typedef mpl::vector<
mpl::vector<mpl::_1, mpl::_2>,
mpl::vector<mpl::_1, mpl::_2, mpl::_3>,
mpl::vector<mpl::_2, mpl::_1>,
mpl::vector<mpl::_2, mpl::_2>,
mpl::vector<mpl::_2, mpl::_2, mpl::_3>
> seq;
Was ich zu tun ist, möchte dies zu einer Trie zu verwandeln, Das Endergebnis ist etwas wie:
mpl::map<
mpl::pair<mpl::_1,
mpl::map<
mpl::pair<mpl::_2,
mpl::map<
mpl::pair<TERMINAL, T>,
mpl::pair<mpl::_3,
mpl::map<
mpl::pair<TERMINAL, T>
>
>
>
>
>
>
mpl::pair<mpl::_2,
mpl::map<
mpl::pair<mpl::_1,
mpl::map<
mpl::pair<TERMINAL, T>
>
>,
mpl::pair<mpl::_2,
mpl::map<
mpl::pair<TERMINAL, T>,
mpl::pair<mpl::_3,
mpl::map<
mpl::pair<TERMINAL, T>
>
>
>
>
>
>
>
So ist die Frage, ist das möglich (ich denke, es ist nicht)? Wenn es möglich ist, welche dunklen Zauber habe ich verpasst?
EDIT: Für den Fall, dass die obige Transformation von Sequenz von Sequenzen zu einem Trie nicht klar ist, lassen Sie mich sehen, wenn ich es in einfachem Englisch (oft schwieriger.) Grundsätzlich jede Sequenz innerhalb der Hauptreihe besteht aus einigen Typen (_1
, _2
usw.) Die transformierte Version ist Trie, wo gemeinsame Präfixe zusammengebrochen sind. Mai wird das beigefügte Bild hilft ..
EDIT2: Dank @Yakk, hoffentlich jetzt die Frage klarer ...
Ich sehe nicht, whhat beabsichtigte Transformation ist. Aktuelle konkrete Beispiele und Pseudocode bitte. – Yakk
@Yakk, aktualisiert - hilft das? Im Grunde versuche ich den gegebenen Baum in dem Bild zu bauen, so dass ich mit einer gegebenen Sequenz (mpl :: vector ') navigieren kann, um die Instanz des Typs" TERMINAL "zu erhalten) –
Nim
Sie wollen also einen Trie? – Yakk