我想尝试使用std::boyer_moore_searcher类。但是我遇到了两个问题:
boyer_moore_searcher
类如何解决这个问题?答案 0 :(得分:1)
Boyer Moore算法的问题之一是,对于Unicode字符,跳转表必须很大。
这并不是真正的答案,但是评论太久了。
Boyer-Moore的“跳过表”需要为您要搜索的模式中的每个“字符”都有一个条目。
对于char
,最简单(也是最快)的方法是拥有256个元素的数组(这就是原始论文中描述B-M算法的方式)。但这不是必需的。只是实现细节。
答案 1 :(得分:0)
这是第一个问题的答案:
在哪里?我正在使用Visual Studio 2019,但它报告了``命名空间 std没有会员boyer_moore_searcher”。
boyer_moore_searcher
是c ++ 17中引入的,因此要进行编译,您需要启用c ++ 17选项:
MSVC Compile选项/std:c++17
或:
属性-> C / C ++->所有选项-> C ++语言标准
。