📜  在C++中带有示例的std :: less(1)

📅  最后修改于: 2023-12-03 14:51:15.214000             🧑  作者: Mango

在C++中带有示例的std :: less

在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::sort算法使用比较函数对象按严格小于(operator<)方式排序,所以取得了结果。

如何使用std::less

std::less是一个函数对象模板,可以使用内部类型值类型T创建对象,如下所示:

std::less<int> comparator;

创建了一个比较类型为int的函数对象std::less,可以使用该对象的operator()进行比较。

调用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是一个函数对象模板,可以为不同类型的对象创建不同的比较函数。