使用Sort进行排序,最后一个参数cmp函数,调用时,出现Invalid comparator错误,cmp函数如下
bool compare(Node* n1, Node* n2) {
return n1->f <= n2->f;
}
如果两个元素相等,必须返回false。故改成如下代码,可以通过编绎。
bool compare(Node* n1, Node* n2) {
return n1->f < n2->f;
}
因为_wfindnext在查找文件时,如果有文件“16.txt”和“5.txt”. 找出来的顺序是16.txt 5.txt.而不是期望的5.txt 16.txt
bool sortFun(wstring s1, wstring s2)
{
if(s1.length()<s2.length())
return true;
else
return s1<s2;
}
vector<wstring> filelist;
std::sort(filelist.begin(), filelist.end(), sortFun)
这版报错:invalid comparator
改为
bool sortFun(wstring s1, wstring s2)
{
return (s1.length() < s2.length() || (s1.length() <= s2.length() && s1 < s2));//升序排列
}
使用Sort进行排序,最后一个参数cmp函数,调用时,出现Invalid comparator错误,cmp函数如下
bool compare(Node* n1, Node* n2) {
return n1->f <= n2->f;
}
如果两个元素相等,必须返回false。故改成如下代码,可以通过编绎。
bool compare(Node* n1, Node* n2) {
return n1->f < n2->f;
}
因为_wfindnext在查找文件时,如果有文件“16.txt”和“5.txt”. 找出来的顺序是16.txt 5.txt.而不是期望的5.txt 16.txt
bool sortFun(wstring s1, wstring s2)
{
if(s1.length()<s2.length())
return true;
else
return s1<s2;
}
vector<wstring> filelist;
std::sort(filelist.begin(), filelist.end(), sortFun)
这版报错:invalid comparator
改为
bool sortFun(wstring s1, wstring s2)
{
return (s1.length() < s2.length() || (s1.length() <= s2.length() && s1 < s2));//升序排列
}
来源:CSDN
作者:evan369
链接:https://blog.csdn.net/evan369/article/details/103584351