我需要匹配语料库中的大量字符串。但是,“字符串”不是字符列表,而是具有自定义重载==运算符的类的对象的向量。
我决定使用Aho-Corasick string matching algorithm来完成这项工作。不幸的是,我还没有找到它的任何开源实现,它可以使用任意对象的序列容器(特别是向量)。幸运的是,我在这里找到了非常整洁的piece of code,它适用于普通字符串。通过一些工作,我可以将其重写为可以解决我的问题的模板。
但在此之前或从头开始编写算法之前,我想问你知道任何已解决我问题的库吗?
提前致谢,
蒂莫
答案 0 :(得分:2)
您可以使用basic_string<T>
它具有字符串的所有方法,但不限于字符。
答案 1 :(得分:1)
您链接的代码中的CSuffixTrie
类包含两个typedef:
typedef std::wstring SearchString;
typedef wchar_t SearchChar;
如果你用你自己的类型替换那些typedef,你应该已经在那里了一半。您需要在向量上实现等效的substr
以及其他一些字符串函数,但这不应该太多。