学习将lamda函数指针传递给sort()。
我创建了一个奇怪的比较函数,3比任何东西都大,而其他数字遵循正常的比较规则。
然后我将函数指针传递给带有向量的sort函数。
我期待结果像3,5,4
但实际结果如5,4,3。
请您帮忙解释一下后台发生了什么,以及为什么我的奇怪功能不会影响结果。
int main()
{
//strange compare function, 3 is larger than anything, whlie other numbers follow normal rule
auto plarger = [](int a, int b)
{
if((a==3) && (b !=3))
{
cout<<"i am here"<<endl;
return true;
}
else return a>b;
};
vector<int> s { 3, 4, 5 };
sort(s.begin(), s.end(), plarger);
for (auto i : s)
{
cout << i << endl;
}
return 0;
}