當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ std::less用法及代碼示例


std::less是a是用於執行比較的函數類(<functional.h>)的成員。它被定義為一個函數對象類,用於小於不等式的比較,該比較器根據條件返回布爾值。這可用於更改給定函數的函數。它可以與各種標準算法一起使用,例如sort,lower_bound等。

頭文件:

#include <functional.h>

模板類別:

template <class T> struct less {

  // Declaration of the less operation
  bool operator() (const T& x,
                   const T& y) 
       const 
  {
     return x  < y;
  }

  // Type of first parameter
  typedef T first_argument_type;

  // Type of second parameter
  typedef T second_argument_type;

  // The result is returned
  // as bool type
  typedef bool result_type;
};

用法:

std::less()

參數:該函數接受參數T的類型作為參數,以供函數調用進行比較。



返回類型:它根據條件返回布爾值(讓a和b為2個元素):

  • 真正:如果a小於b。
  • 假:如果a大於b。

下麵是C++中std::less的圖示:

程序1:

// C++ program to illustrate 
// std::less function 
#include <algorithm> 
#include <functional> 
#include <iostream> 
using namespace std; 
  
// Function to print array arr[] 
void printArray(int arr[], int N) 
{ 
  
    for (int i = 0; i < N; i++) { 
        cout << arr[i] << ' '; 
    } 
} 
  
// Driver Code 
int main() 
{ 
    int arr[] = { 26, 23, 21, 22, 
                  28, 27, 25, 24 }; 
  
    int N = sizeof(arr) / sizeof(arr[0]); 
  
    // Sort the array in increasing order 
    sort(arr, arr + N, less<int>()); 
  
    // Print sorted array 
    printArray(arr, N); 
    return 0; 
}
輸出:
21 22 23 24 25 26 27 28

程序2:

// C++ program to illustrate less 
#include <iostream> 
#include <algorithm> 
#include <functional> 
using namespace std; 
  
// Template 
template <typename A, typename B,  
          typename U = std::less<int> > 
  
// Function to check if a < b or not 
bool f(A a, B b, U u = U()) 
{ 
    return u(a, b); 
} 
  
// Driver Code 
int main() 
{ 
    int X = 1, Y = 2; 
  
    // If X is less than Y or not 
    cout << std::boolalpha; 
    cout << f(X, Y) << '\n'; 
  
    X = 2, Y = -1; 
  
    // If X is less than Y or not 
    cout << f(X, Y) << '\n'; 
  
    return 0; 
}
輸出:
true
false

參考: http://www.cplusplus.com/reference/functional/less/




相關用法


注:本文由純淨天空篩選整理自akash_salvi大神的英文原創作品 std::less in C++ with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。