在 C++ 中,less
函數是一個比較函數,它用于檢查兩個給定元素的大小關系。less
函數通常用于排序和查找算法,如 std::sort
、std::lower_bound
等。
less
函數的原型如下:
template<class T>
struct less {
bool operator()(const T& a, const T& b) const;
};
這里,T
是要比較的元素類型。operator()
是一個函數調用操作符,它接受兩個參數 a
和 b
,并返回一個布爾值,表示 a
是否小于 b
。
例如,當你使用 std::sort
對一個整數向量進行排序時,你可以使用 std::less<int>
作為比較函數:
#include<algorithm>
#include<vector>
#include<functional>
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>());
return 0;
}
在這個例子中,std::less<int>
會按照升序對整數向量進行排序。如果你想按照降序排序,你可以使用 std::greater<int>
代替。