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