首頁  >  文章  >  後端開發  >  C++ 標準函式庫中有哪些常用的 STL 函式物件?

C++ 標準函式庫中有哪些常用的 STL 函式物件?

王林
王林原創
2024-04-25 13:06:02392瀏覽

C STL 中提供了多種函數對象,可用於對元素進行比較、排序和操作。常見的函數物件包括用於升序排序的 less,用於降序排序的 greater,用於比較相等的 equal_to,以及用於綁定函數參數的 bind2nd 和 mem_fn。在實務中,可以透過使用 greater 函數物件對陣列進行降序排序,如下所示:利用 sort() 函數,greater 函數物件將對指定範圍內的元素進行降序排序。

C++ 标准库中有哪些常用的 STL 函数对象?

C 標準庫中常用的STL 函數物件

函數對象,即Functor,是一種可以被呼叫並傳回結果的對象。 C 標準函式庫中提供了許多有用的 STL 函數對象,可用於各種演算法和操作。

以下是C STL 中的一些常用函數物件:

  • #less: 比較函數,用於對元素排序(升序)。
  • greater: 比較函數,用於對元素排序(降序)。
  • equal_to: 等於比較函數,用來檢查兩個元素是否相等。
  • not_equal_to: 不等於比較函數,用來檢查兩個元素是否不相等。
  • greater_equal: 大於或等於比較函數,用於檢查一個元素是否大於或等於另一個元素。
  • less_equal: 小於或等於比較函數,用於檢查一個元素是否小於或等於另一個元素。
  • bind2nd: 綁定函數物件的一個參數,並傳回綁定的函數物件。
  • mem_fn: 建立從成員函數指標建立函數物件的函數物件。

實戰案例:

使用greater 函數物件對整數陣列進行降序排序:

#include <algorithm>
#include <vector>

using namespace std;

int main() {
  vector<int> myVector = {1, 3, 5, 2, 4};

  // 使用 greater 函数对象对 myVector 中的元素进行降序排序
  sort(myVector.begin(), myVector.end(), greater<int>());

  // 输出排序后的数组
  for (auto it = myVector.begin(); it != myVector.end(); ++it) {
    cout << *it << " ";
  }
  cout << endl;

  return 0;
}

輸出:

5 4 3 2 1

以上是C++ 標準函式庫中有哪些常用的 STL 函式物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn