Problem wygląda dość proste, w zasadzie mam kolejność sekwencji, coś takiego:Konwersja sekwencję mpl sekwencji w 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;
Co chciałbym zrobić, to przekształcić to do trie, końcowy wynik to coś w rodzaju:
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>
>
>
>
>
>
>
>
Pytanie brzmi, czy to możliwe (myślę, że tak nie jest)? Jeśli to możliwe, które ciemne zaklęcia przeoczyłem?
EDYCJA: W przypadku, gdy powyższa transformacja z sekwencji sekwencji do trie nie jest jasna, zobaczmy, czy mogę ją podać w prostym języku angielskim (często trudniejszym). Zasadniczo każda sekwencja w głównej sekwencji składa się z niektórych typy (_1
, _2
itd.) Wersja przekształcona to trie, w której wspólne przedrostki są zwinięte. Może być załączony rysunek pomaga ..
EDIT2: Dzięki @Yakk, mam nadzieję, że teraz jest pytanie jaśniejsze ...
nie widzę whhat zamierzonego przekształcać jest. Proszę o konkretne konkretne przykłady i pseudokod. – Yakk
@Tak, zaktualizowano - czy ta pomoc? Zasadniczo próbuję zbudować dane drzewo na obrazku, dzięki czemu mogę nawigować używając określonej sekwencji ('mpl :: wektor', aby uzyskać instancję typu 'TERMINAL') –
Nim
Więc chcesz trie? – Yakk