ホームページ >バックエンド開発 >C++ >C++ 標準ライブラリで一般的に使用される STL 関数オブジェクトは何ですか?

C++ 標準ライブラリで一般的に使用される STL 関数オブジェクトは何ですか?

王林
王林オリジナル
2024-04-25 13:06:02466ブラウズ

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: 2 つの要素が等しいかどうかを確認するために使用される等価比較関数。
  • not_equal_to: 等しくない比較関数。2 つの要素が等しくないかどうかを確認するために使用されます。
  • 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。