-3

私はc++のリファレンスサイトを読んでいます。

私はそれが何を意味するのか理解していませんか?その意味と例を教えてください

comp 範囲内の 2 つの要素を引数として受け取り、bool に変換可能な値を返すバイナリ関数。返される値は、最初の引数として渡された要素が、それが定義する特定の厳密な弱い順序付けで 2 番目の引数の前にあると見なされるかどうかを示します。関数は、その引数を変更してはなりません。これは、関数ポインタまたは関数オブジェクトのいずれかです。

4

1 に答える 1

9

機能に関して:

  • Nullary - 引数を取りません。例:void nullary()
  • 単項- 1 つの引数を取ります。void unary(int)
  • バイナリ- 2 つの引数を取ります。void binary(int, float)
  • 三項- 3 つの引数を取ります。void ternary(int, float, char)
  • N-ary - N 個の引数を取ります

したがって、バイナリ関数は、 のように 2 つの引数を取る関数ですvoid foo(int x, float y);。に渡される比較関数はstd::sort、並べ替えているシーケンスから 2 つの要素を取得して を返すバイナリ関数である必要がありますbool。たとえば、 のシーケンスを並べ替える場合X、関数には署名が必要bool compare(const X&, const X&);です。

使用例を次に示します。

bool less_than(const int& a, const int& b)
{
  return a < b;
}

int main()
{
  std::vector<int> v = {5, 1, 2, 4, 3};
  std::sort(v.begin(), v.end(), less_than);
}

ここでless_thanは、最初の引数が 2 番目の引数より小さい場合に true を返す 2 項関数です。これはまさに何をするかstd::lessです。の力は、返すバイナリ関数std::sortを与えることができ、それboolを使用してソートできることです。

于 2013-03-22T16:57:56.177 に答える