简而言之:在这里您可以找到带有在线编译器的工作代码。
您所需要的只是两个循环,一个用于迭代向量元素,另一个用于迭代每个元素,同时计算该特定元素中所需单词的出现次数。然后外部循环对其进行总结。
您可以将 string::find 用于内部循环,而外部循环是带有迭代器的常规循环。
您还需要下面的代码片段才能与 C++98/03 和 C++11 一起正常工作。
#include <string>
#include <vector>
#include <iostream>
using namespace std;
int main()
{
vector<string> stringList;
stringList.push_back("pass");
stringList.push_back("pass");
stringList.push_back("Test pass pass");
string searchWord = "pass";
int searchWordSize = searchWord.size();
int count = 0;
for (vector<string>::iterator iter = stringList.begin(); iter != stringList.end(); ++iter) {
// Avoid the overlapping search word. If that is needed, replace
// pos+=searchWordSize with ++pos
for (size_t pos = 0; pos < (*iter).length(); pos+=searchWordSize) {
pos = (*iter).find(searchWord, pos);
if (pos != string::npos)
++count;
else
break;
}
}
cout << "Count: " << count << endl;
return 0;
}
我已经使用以下命令构建并运行了代码:
输出将4
如预期的那样。