【发布时间】:2024-01-07 03:38:01
【问题描述】:
我有一个由两个迭代器(start 和end)定义的子字符串。我需要检查这个子字符串是否存在于另一个字符串中。
是否有一个标准库算法或字符串成员我可以使用或调整来执行此操作,而无需为此创建一个全新的字符串对象 (std::string(start, end))?
例如
struct Substring
{
std::string::const_iterator start, end;
};
auto found = std::contains(whole.begin(), whole.end(), substring.start, substring.end); // ???
【问题讨论】:
-
Boost有boost::algorithm::containsboost.org/doc/libs/1_55_0/doc/html/string_algo/… -
FWIW,如果你需要类似的东西,很快就会有一些新的搜索方法,比如Boyer-Moore。我知道 libstdc++ 已经实现了这些。