我决定编写一个小解析器来解析BBCode并返回格式正确的HTML。我很难决定代表关键字的最有效方式是什么。我总是可以使用单独的字符串来保存它们,但我觉得必须有一些未知的数据结构(对我来说)才能有效查找。
如果我可以使用的STL中有任何内容,我正在使用C ++。我不打算实际使用它,所以我不需要使用像PHP这样的东西。它没有GUI界面;只需输入一个文本文件,它就会输出一个解析出HTML的新文件。
修改:按关键字,我指的是开始和结束标记,例如[b]
和[/b]
。
答案 0 :(得分:4)
由于您事先了解了所有关键字,因此您可以利用perfect hashing,例如通过this library - 另请参阅维基百科entry及其中的指示。
答案 1 :(得分:2)
经典答案是哈希表。恒定时间插入/更换。
但是你想要的并不完全清楚。如果只是为了保持关键字整齐有序而不是通过你的代码,一个简单的数组就可以了;然后使用#defines索引并选择它们。
答案 2 :(得分:1)
经典是1973年论文中介绍的Aho-Corasick关键词树。
线性时间字插入,线性时间字查找。