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

c++
小億
83
2023-12-14 13:40:45

在C++中,可以使用std::sort函數(shù)對(duì)數(shù)組或容器中的元素進(jìn)行排序。std::sort函數(shù)屬于<algorithm>頭文件,使用前需要包含該頭文件。

std::sort函數(shù)有兩種使用方式:

  1. 排序數(shù)組:可以使用std::sort函數(shù)對(duì)數(shù)組中的元素進(jìn)行排序。例如:
#include <algorithm>
#include <iostream>

int main() {
    int arr[] = {5, 2, 8, 1, 9};

    std::sort(arr, arr + 5);  // 對(duì)數(shù)組元素進(jìn)行排序

    for (int i = 0; i < 5; ++i) {
        std::cout << arr[i] << " ";
    }

    return 0;
}

輸出結(jié)果為:1 2 5 8 9

  1. 排序容器:可以使用std::sort函數(shù)對(duì)容器中的元素進(jìn)行排序。例如:
#include <algorithm>
#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec = {5, 2, 8, 1, 9};

    std::sort(vec.begin(), vec.end());  // 對(duì)容器元素進(jìn)行排序

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

    return 0;
}

輸出結(jié)果為:1 2 5 8 9。

std::sort函數(shù)默認(rèn)按照升序?qū)υ剡M(jìn)行排序。如果需要按照降序排序,可以使用自定義的比較函數(shù)。例如:

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

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

int main() {
    std::vector<int> vec = {5, 2, 8, 1, 9};

    std::sort(vec.begin(), vec.end(), compare);  // 按照自定義的比較函數(shù)對(duì)容器元素進(jìn)行排序

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

    return 0;
}

輸出結(jié)果為:9 8 5 2 1。

0