c++ - 如何在字符串 vector 中找到某个值

标签 c++ visual-studio vector visual-c++

我正在尝试为一个赋值程序创建一个程序,该程序将在字符串 vector 中添加和删除字符串,但首先我需要创建一个函数来查找该字符串是否已存在于 vector 中。

我已经尝试使用循环来搜索 vector 以在每个索引处找到特定的所需字符串。我尝试添加 break; 以在找到字符串时退出。我不知道函数应该是 void 还是 boolean。

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;
        }
    }
}

如果找到字符串,我希望输出为真,否则显然为假。

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

最佳答案

您应该尽可能使用标准算法:

auto result = std::find(restaurantVctr.begin(), restaurantVctr.end(), targetRestnt);
return result != restaurantVctr.end();

这正是std::find是为了。

关于c++ - 如何在字符串 vector 中找到某个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58736449/

相关文章:

c++ - 将 VS2008 转换为 VS2010 项目 "cannot find the file specified"

visual-studio - 使用 Visual Studio 2013 RC 在 Windows 8.1 RTM 上安装 Windows Phone 7.1 SDK

r - 如何交换R中命名向量的名称和值?

C++ STL Vector 相当于 Rust 中的 set_len()

visual-studio - 调试异常

c++ - argc 和 argv 的目的是什么?

c++ - std::optional 如何从初始值设定项列表中构造 std::variant ?

c++ - 如何从 std::tm 转换为 Windows::Foundation::DateTime

c++ - vector<bool>::operator[] 行为不当?

c++ - Qwt - 重绘不清除当前情节