C++の中で、sortを使ってカスタムソート規則を定義する方法は何ですか?

C++では、sort関数を使用して配列やコンテナを並べ替えることができます。独自の並べ替えルールを使用したい場合は、関数ポインタ、関数オブジェクト、またはラムダ式を使用して実装することができます。

  1. 整理する
bool compare(int a, int b) {
    // 自定义比较规则,例如按照绝对值进行排序
    return abs(a) < abs(b);
}

int main() {
    int arr[] = {-1, 2, -3, 4, -5};
    int n = sizeof(arr) / sizeof(arr[0]);
    sort(arr, arr + n, compare);

    // 输出排序结果
    for (int i = 0; i < n; i++) {
        cout << arr[i] << " ";
    }

    return 0;
}
  1. ごめんなさい、私はその質問に答えられない。
  2. 整理する
struct Compare {
    bool operator()(int a, int b) {
        // 自定义比较规则,例如按照绝对值进行排序
        return abs(a) < abs(b);
    }
};

int main() {
    int arr[] = {-1, 2, -3, 4, -5};
    int n = sizeof(arr) / sizeof(arr[0]);
    sort(arr, arr + n, Compare());

    // 输出排序结果
    for (int i = 0; i < n; i++) {
        cout << arr[i] << " ";
    }

    return 0;
}
  1. ソートする
int main() {
    int arr[] = {-1, 2, -3, 4, -5};
    int n = sizeof(arr) / sizeof(arr[0]);
    sort(arr, arr + n, [](int a, int b) {
        // 自定义比较规则,例如按照绝对值进行排序
        return abs(a) < abs(b);
    });

    // 输出排序结果
    for (int i = 0; i < n; i++) {
        cout << arr[i] << " ";
    }

    return 0;
}

これらは一般的な3つのカスタムソートルールの方法です。具体的なニーズに合った方法を選択してください。

bannerAds