gpt4 book ai didi

c++ - 如何在字符串列表中查找匹配的字符串

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:27:26 27 4
gpt4 key购买 nike

我正在学习 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++ 执行此操作?

最佳答案

现在最好的方法可能是使用无序集:

std::unordered_set<std::string> ValidValues {"one", "two", "three"};

if( ValidValues.find( testString ) == ValidValues.end() ) {
// String is not valid...
}

这里唯一真正的缺点是您不能简单地在可执行镜像中布置有效字符串。 (设置集合需要初始化代码和堆分配。)但这对于绝大多数应用程序来说并不重要。

关于c++ - 如何在字符串列表中查找匹配的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14284444/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com