0

我有一组字符串,然后是第二组字符串。我想遍历该集合并确定当前字符串是否包含在第二个字符串中。是否有任何来自STL或来自这些工具的任何工具可以简化我的工作?

#include <cctype>
#include <iostream>
#include <iomanip>
#include <set>
#include <list>
#include <map>
#include <vector>
#include <queue>
#include <string>

用例:

test1 . Add    ( 0, "hello" );
test1 . Add    ( 1, "world" );
test1 . Add    ( 2, "rld" );
test1 . Add    ( 3, "ell" );
test1 . Add    ( 4, "hell" );
printSet ( test1 . Search ( "hello world!" ) );
// 0, 1, 2, 3, 4
printSet ( test1 . Search ( "hEllo world!" ) );
// 1, 2

当然,我可以逐个字符串、逐个字符地比较它,或者创建一些自动机,但是为什么要让事情变得更难,而不是实际情况:)

4

2 回答 2

2

您可以使用std::string::findfor 搜索,并将boost::bind其传递给std::for_eachwithboost::lambda以比较结果std::string::npos并对其进行计数您可以在此处
找到相关示例 另一种更直接的方法是创建自己的仿函数,该仿函数将在构造函数中获取字符串,搜索子字符串并计算 npos' es
operator()(const std::string&)

于 2013-04-16T13:15:13.293 回答
1

您可以使用find_if

我希望这有帮助

于 2013-04-16T13:19:20.967 回答