我正在学习 c++ 并想知道执行以下操作的最佳或最惯用的方法是什么。我有一个已知接受字符串的列表,这些字符串对于程序来说是不变的。我想知道提供给函数的字符串是否在我接受的字符串列表中。我想出了:
bool match(const char* foo, const char* bar) {
return strcmp(foo, bar) == 0;
}
bool thingIsValid(const char* thing) {
return match("foo", thing) || match("bar", thing) || match("baz", thing);
}
...
thingIsValid(someArg.c_str());
...
这种方法对我来说似乎更像是 C 习语。在其他语言中,我可能只会有一个列表并在该列表上执行 .contains(thing) 。人们通常如何在 C++ 中做到这一点?