我正在寻找一种有效算法的建议,以便在大量文本中查找所有匹配项.要搜索的术语将包含在列表中,并且可以有1000多种可能性.搜索项可以是1个或更多个单词.
显然,我可以通过文本进行多次传递,比较每个搜索词.效率不高.
我想过订购搜索词并组合常见的子段.这样我就可以快速消除大量术语.语言是C++,我可以使用boost.
搜索术语的示例可以是财富500强公司名称的列表.
想法?
我有一个关于使用std::searchvs string::find来处理字符串的问题.我知道使用类特定成员函数算法通常比标准库算法更好,因为它可以根据类进行优化,但我想知道是否合理,为了保持一致性,请使用std::search迭代器而不是比string::find索引.
对我来说做这样的事情会不会是一种罪过,还是我应该坚持使用string :: find?在性能或风格方面,是否有任何巨大的优势?