【发布时间】:2020-07-07 05:23:24
【问题描述】:
我想在不使用任何循环的情况下计算包含我的键的字符串。
您可以在下面找到我的代码来做这些事情。我正在寻找答案,我找到了函数 std:find 但没有任何帮助
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;
int main()
{
std::vector<string> vec = { "ranaf", "ban", "Ploan", "Bar", "barour", "banriir" };
string key = "an";
if(std::find(vec.begin(), vec.end(), key) != vec.end()) {
cout << ("YES") <<endl;
}
return 0;
}
【问题讨论】:
-
你认为你将如何检查你的向量的元素是否包含一些东西而不遍历?
-
没有 any 循环是不可能的。
std::find使用循环,std::count使用循环,比较字符串使用循环。不确定你真正想要什么。为什么还要避免循环? -
你使用的函数里面有循环可以吗?因为执行此操作的所有算法都使用循环。没有循环的唯一方法是,如果您在编译时知道
vec的大小,并且在没有循环的情况下遍历(循环展开) -
关于 Jaspers 的回答,我还有一个问题。您是要 count 包含某些前缀的字符串(如您的问题所述)还是要检查 any of strings 是否包含前缀 (因为您当前的代码应该去做)?如果你想计算一些东西,打印“是”不喜欢答案。