Dla warstwy modelu niezależny od platformy, mam danych hierarchicznych (ciągi, faktycznie), które wyglądają tak:Czy istnieje kontener STL dla danych modelu hierarchicznego?
- Pozycja A
- podpunkt
- podpunkt B
- podpunkt C
- SubSubItem A
- SubSubItem B
- podpunkt D
- Pozycja B
- Pozycja C
Teraz, w obrębie każdego "poziom" (punkt, podpunkt, SubSubItem, itd.) Elementy muszą być posortowane alfabetycznie.
Wydaje się, że prostym rozwiązaniem byłoby stworzenie prostej klasy z posortowaną std :: Vector lub std :: MultiMap do śledzenia jej dzieci i wskaźnika do rodzica. (i jeden element główny). Będę potrzebował na ogół iterować przez dzieci każdego przedmiotu w kierunku do przodu.
Po zakończeniu budowy/sortowania nie trzeba dodawać ani usuwać elementów. Ogólnie mała liczba przedmiotów (setki).
Ta funkcja służy do modelowania danych podkładu kontrolki w stylu konspektu.
Toczenie prostej klasy byłoby łatwe, ale jest to taki powszechny wzorzec - czy nie ma już gotowego kontenera STL z takim zachowaniem?
dzięki - to jest klasa elegancka. Jest licencjonowany na licencji GPLv2/GPLv3. Zajmuję się tworzeniem oprogramowania komercyjnego. Jeśli NIE zmienię kodu w JAKIKOLWIEK SPOSÓB, czy muszę dystrybuować dowolny kod źródłowy? – SMGreenfield
Hmmm Nie jestem w ogóle ekspertem, ale brzmi to tak, jakbyś musiał to zrobić (https://www.gnu.org/licenses/gpl-faq.html#GPLInProprietarySystem). Możesz zamiast tego użyć klasy drzewa własności z Boost (http://www.boost.org/doc/libs/1_53_0/doc/html/property_tree.html). – Corey
@SMGreenfield - Doszedłem do tego samego wniosku, że ta klasa nie nadaje się do zastosowań komercyjnych. – MarkB