如何在字符串向量中找到某个值

bur*_*eti 0 c++ vector visual-studio visual-c++

我正在尝试为分配创建程序,该程序将从字符串向量中添加和删除字符串,但是首先我需要创建一个函数来查找向量中是否已经存在该字符串。

我已经尝试过使用循环搜索向量,以在每个索引处找到特定的所需字符串。break;如果找到了字符串,我尝试添加a 退出。我不知道该函数应该为空还是布尔值。

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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望如果找到该字符串,输出将为true,否则显然将为false。

编辑:我忘了提到我也收到了警告:“并非所有控制路径都返回一个值”

Jef*_*ica 8

您应该尽可能使用std算法:

auto result = std::find(restaurantVctr.begin(), restaurantVctr.end(), targetRestnt);
return result != restaurantVctr.end();
Run Code Online (Sandbox Code Playgroud)

那正是std::find目的。