📅  最后修改于: 2023-12-03 14:51:15.214000             🧑  作者: Mango
在C++中,std::less是函数对象模板之一,它比较两个参数并返回bool值表示是否第一个参数严格小于第二个参数。可以在STL(标准模板库)算法中使用。
以下是示例代码使用std::less:
#include <iostream>
#include <algorithm>
#include <vector>
int main()
{
std::vector<int> v {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
std::sort(v.begin(), v.end(), std::less<int>());
for(auto i : v)
std::cout << i << ' ';
return 0;
}
上面的代码段排序了一个存有整数的vector,并使用std::less
std::less是一个函数对象模板,可以使用内部类型值类型T创建对象,如下所示:
std::less<int> comparator;
创建了一个比较类型为int的函数对象std::less
调用operator()时,将传递给它两个类型T的参数,然后返回比较的bool值。如下所示:
bool result = comparator(arg1, arg2);
在STL中,可以在算法中使用std::less作为排序比较函数,如下所示:
std::sort(v.begin(), v.end(), std::less<int>());
此代码使用std::less
除了作为STL算法的排序比较的函数对象外,std::less也可以用在其他作为模板你设计的函数或对象中,和使用其他STL函数对象一样。
这样,您就学会了如何使用带有示例的std::less,在C++中通过STL进行排序等操作。请记住,std::less是一个函数对象模板,可以为不同类型的对象创建不同的比较函数。