如果我有:
const string food[] = {"Burgers", "3", "Fries", "Milkshake"}
string word;
cin >> word;
如何将单词与正确的食物进行比较?或者更确切地说,如果用户输入“Fries”,我该如何将其与字符串数组进行比较?
答案 0 :(得分: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
}
答案 1 :(得分: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::set
或std::unordered_set
。