【发布时间】:2019-11-06 18:29:36
【问题描述】:
我正在尝试为分配创建一个程序,该程序将从字符串向量中添加和删除字符串,但首先我需要创建一个函数来查找该字符串是否已存在于向量中。
我已经尝试使用循环来搜索向量以在每个索引处找到特定的所需字符串。我尝试添加一个break;退出,如果该字符串被发现。我不知道该函数应该是无效或布尔值。 P>
bool FindString(int vctrSize, vector<string> restaurantVctr, string targetRestnt) {
int i;
for (i = 0; i < vctrSize; ++i) {
if (restaurantVctr.at(i) == targetRestnt) {
return true;
break;
}
else {
return false;
}
}
}
如果找到字符串,我希望输出为真,否则显然为假。
编辑:我忘了提到我还收到了警告:“并非所有控制路径都返回值”
【问题讨论】:
-
这有什么错std::find? SPAN>
-
return false;应该是环路的外部。跨度> -
其他建议:1) 不要传递大小,因为
std::vector已经知道了。 2)通过传递const &载体能够避免作出复制不必要。 3)路过const &字符串出于同样的原因。 4)如果你使用std::find或std::binary_search(必须排序才能使用那个),你根本不需要单独的函数。
标签: c++ visual-studio vector visual-c++