溫馨提示×

如何在c++中使用is_sorted函數(shù)判斷向量是否有序

c++
小樊
89
2024-09-15 18:19:16
欄目: 編程語言

std::is_sorted 是 C++ 標準庫中的一個函數(shù),用于檢查范圍內(nèi)的元素是否已按非降序排列。以下是如何在 C++ 中使用std::is_sorted 函數(shù)來判斷一個向量(std::vector`)是否有序的示例:

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

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

    if (std::is_sorted(vec.begin(), vec.end())) {
        std::cout << "The vector is sorted."<< std::endl;
    } else {
        std::cout << "The vector is not sorted."<< std::endl;
    }

    return 0;
}

在這個示例中,我們創(chuàng)建了一個名為 vec 的整數(shù)向量,并使用 std::is_sorted 函數(shù)檢查它是否已排序。如果向量已排序,則輸出 “The vector is sorted.”,否則輸出 “The vector is not sorted.”。

注意,std::is_sorted 默認使用 operator< 進行比較。如果你需要使用自定義比較函數(shù),可以將其作為第三個參數(shù)傳遞給 std::is_sorted。例如:

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

bool custom_compare(int a, int b) {
    return a > b; // 降序排列
}

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

    if (std::is_sorted(vec.begin(), vec.end(), custom_compare)) {
        std::cout << "The vector is sorted in descending order."<< std::endl;
    } else {
        std::cout << "The vector is not sorted in descending order."<< std::endl;
    }

    return 0;
}

在這個示例中,我們使用了一個自定義比較函數(shù) custom_compare,它使用降序排列。我們將這個比較函數(shù)作為第三個參數(shù)傳遞給 std::is_sorted 函數(shù),以檢查向量是否按降序排列。

0