c++中的sort函數(shù)怎么使用

c++
小億
97
2023-12-16 23:50:14

C++中的sort()函數(shù)用于對(duì)容器中的元素進(jìn)行排序。它可以用于排序數(shù)組、向量和字符串等容器。

下面是sort()函數(shù)的使用方法:

  1. 包含頭文件:#include <algorithm>

  2. 使用sort()函數(shù):

    • 對(duì)數(shù)組進(jìn)行排序:sort(arr, arr+n);,其中arr是數(shù)組名,n是數(shù)組中元素的個(gè)數(shù)。
    • 對(duì)向量進(jìn)行排序:sort(vec.begin(), vec.end());,其中vec是向量名。
    • 對(duì)字符串進(jìn)行排序:sort(str.begin(), str.end());,其中str是字符串名。

注意:

  • 默認(rèn)情況下,sort()函數(shù)按升序?qū)υ剡M(jìn)行排序。
  • 若要按降序?qū)υ剡M(jìn)行排序,可以使用greater<>()函數(shù)對(duì)象作為第三個(gè)參數(shù)。例如:sort(vec.begin(), vec.end(), greater<>());
  • 若要自定義排序規(guī)則,可以使用自定義的比較函數(shù)作為第三個(gè)參數(shù)。比較函數(shù)應(yīng)接受兩個(gè)參數(shù),并返回一個(gè)bool值,表示兩個(gè)元素的相對(duì)順序。例如:bool compare(int a, int b) { return a > b; } sort(vec.begin(), vec.end(), compare);

下面是一個(gè)完整的示例代碼:

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

bool compare(int a, int b) {
    return a > b;
}

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

    sort(arr, arr + n);

    for (int i = 0; i < n; i++) {
        cout << arr[i] << " ";
    }
    cout << endl;

    vector<int> vec = {3, 1, 4, 2, 5};
    sort(vec.begin(), vec.end(), greater<>());

    for (int i = 0; i < vec.size(); i++) {
        cout << vec[i] << " ";
    }
    cout << endl;

    return 0;
}

輸出結(jié)果:

1 2 3 4 5
5 4 3 2 1

0