-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