2

如果我有:

const string food[] = {"Burgers", "3", "Fries", "Milkshake"}
string word;
cin >> word;

我如何将单词与正确的食物进行比较?或者更确切地说,如果用户输入“Fries”,我如何将其与字符串数组进行比较?

4

2 回答 2

7

find

#include <algorithm>
#include <iterator>

auto it = std::find(std::begin(food), std::end(food), word);

if (it != std::end(food))
{
    // found *it
}
else
{
    // not found
}
于 2013-09-11T13:33:24.713 回答
3

使用find来自的算法<algorithm>

auto found = std::find(std::begin(food), std::end(food), word);
if (found == std::end(food)) {
    // not found
} else {
    // found points to the array element
}

或使用循环:

for (const auto &item : food) {
    if (item == word) {
        // found it
    }
}

但是,如果您经常需要这样做,最好将项目存储在为快速搜索而设计的数据结构中:std::setstd::unordered_set.

于 2013-09-11T13:36:28.863 回答