私は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を使用してソートできることです。