-1
我正在尝试列表容器的排序功能,将函数对象和函数指针作为比较函数传递。 但不知何故,功能对象版本没有解决。 输出为l.sort(MylessFuncObj())
是:为什么列表容器的排序功能不起作用
1
2
3
5
45
虽然我预计产量为1 2 3 45 5.另一件事我不太明白的是,如果l.sort()
使用它之前的是l.sort(MylessFuncObj())
没有很好地工作。
我刚开始学习CPP,我真的卡住..
#include <list>
#include <iostream>
using namespace std;
class MylessFuncObj
{
public:
bool operator()(const int &a, const int &b){
return (a%10)<(b%10);
}
};
bool Mylessfunc(const int &a, const int &b){
return (a%10)<(b%10);
}
int main()
{
list<int> l={1, 2, 3, 45,5};
l.sort(Mylessfunc);
for(int j:l) cout<<j<<endl;
l.sort();
cout<<endl;
for(int j:l) cout<<j<<endl;
cout<<endl;
l.sort(MylessFuncObj());
for(int j:l)
cout<<j<<endl;
return 0;
}
整数不按照字典顺序排列......它们按价值排序.......你真的在现实生活中以这种方式分类数量吗? –
您是否尝试使用相同的一组值对列表的不同实例进行初始化,而不是多次对相同列表进行排序? – PermanentGuest
它根据您的排序功能正确排序。你为什么认为45岁以前必须5岁? – interjay