Ich entschied mich, einen kleinen Parser zu schreiben, um BBCode zu analysieren und richtig formatiertes HTML zurückzugeben. Es fällt mir schwer zu entscheiden, wie die Schlüsselwörter am effizientesten dargestellt werden können. Ich könnte immer separate Strings verwenden, um sie zu halten, aber ich habe das Gefühl, dass es eine unbekannte Datenstruktur (für mich) geben muss, die eine effiziente Suche ermöglichen würde.Was ist die effizienteste Datenstruktur für Keywords?
Ich benutze C++, wenn es etwas in der STL gibt, die ich verwenden kann. Ich beabsichtige nicht, es wirklich zu benutzen, also brauche ich nichts wie PHP. Es wird keine GUI-Schnittstelle haben; Geben Sie einfach eine Textdatei ein und es wird eine neue Datei mit dem ausgegliederten HTML ausgegeben.
Bearbeiten: Mit Schlüsselwörtern meine ich die öffnenden und schließenden Tags, wie [b]
und [/b]
.
Da die Einfügung zur Kompilierzeit ist, warum ist das besser als die Verwendung eines RAW-Arrays, das auch eine lineare Suche hat? – jkeys
Huh? Warum wird die Einfügung zur Kompilierzeit durchgeführt? Meinst du, dass deine Einfügung nur zur Kompilierzeit erfolgt? Darüber hinaus kann ich nicht sehen, wie ein Array eine lineare Zeitsuche ist, es sei denn, Sie verwenden einige erweiterte Algorithmen auf Suffix-Arrays, die ich bezweifle, dass Sie sind. Die Aho-Corasick-Methode sucht nach ALLEN Schlüsselwörtern für eine Übereinstimmung in der Zeit linear in Bezug auf die Länge des gesuchten Wortes. –