这是我的比较功能
bool cmp(string* s1,string* s2)
{return(strlen(s1)>strlen(s2));}
这是我的Vector数组
vector<string>v(n);
这是我的排序功能
sort(v.begin(),v.end(),cmp);
我哪里出错了
答案 0 :(得分:2)
我哪里出错了
比较函数should have签名类似于以下内容:
bool cmp(const Type1 &a, const Type2 &b);
因此,您的比较功能可能如下所示:
bool cmp(std::string const& s1, std::string const& s2)
{
return s1.length() > s2.length();
}
它的工作原理可以请说明其工作原因
它有效,因为std::sort
将采用2个向量元素并在每个回合中将它们发送到比较函数。向量由std::string
组成,你可以选择通过值或引用或const
引用来传递它们但是你不能像你尝试的那样传递指针(为此你需要std::vector<std::string *>
,有点毫无意义的tbh)