gpt4 book ai didi

带有自定义比较器的 C++ std::find

转载 作者:IT老高 更新时间:2023-10-28 12:44:52 24 4
gpt4 key购买 nike

这基本上是我想做的:

bool special_compare(const string& s1, const string& s2)
{
// match with wild card
}

std::vector<string> strings;

strings.push_back("Hello");
strings.push_back("World");

// I want this to find "Hello"
find(strings.begin(), strings.end(), "hell*", special_compare);

// And I want this to find "World"
find(strings.begin(), strings.end(), "**rld", special_compare);

但不幸的是,std::find 不能那样工作。那么只使用 STL,我怎么能做这样的事情呢?

最佳答案

根据您的评论,您可能正在寻找以下内容:

struct special_compare : public std::unary_function<std::string, bool>
{
explicit special_compare(const std::string &baseline) : baseline(baseline) {}
bool operator() (const std::string &arg)
{ return somehow_compare(arg, baseline); }
std::string baseline;
}

std::find_if(strings.begin(), strings.end(), special_compare("hell*"));

关于带有自定义比较器的 C++ std::find,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14322299/

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