私はc++のリファレンスサイトを読んでいます。
私はそれが何を意味するのか理解していませんか?その意味と例を教えてください
comp 範囲内の 2 つの要素を引数として受け取り、bool に変換可能な値を返すバイナリ関数。返される値は、最初の引数として渡された要素が、それが定義する特定の厳密な弱い順序付けで 2 番目の引数の前にあると見なされるかどうかを示します。関数は、その引数を変更してはなりません。これは、関数ポインタまたは関数オブジェクトのいずれかです。
機能に関して:
void nullary()
void unary(int)
void binary(int, float)
void ternary(int, float, char)
したがって、バイナリ関数は、 のように 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
を使用してソートできることです。