c++中is_sorted函數(shù)的參數(shù)有哪些

c++
小樊
84
2024-09-15 18:07:57
欄目: 編程語言

std::is_sorted 是 C++ 標(biāo)準(zhǔn)庫(kù)` 中的一個(gè)函數(shù),用于檢查范圍內(nèi)的元素是否已按非降序排列。其函數(shù)原型如下:

template< class InputIt >
bool is_sorted( InputIt first, InputIt last );

template< class InputIt, class Compare >
bool is_sorted( InputIt first, InputIt last, Compare comp );

這里有兩個(gè)版本的 is_sorted 函數(shù),第一個(gè)版本使用 operator< 進(jìn)行比較,而第二個(gè)版本允許你提供自定義的比較函數(shù)。以下是兩個(gè)版本的參數(shù)說明:

  1. 第一個(gè)版本的參數(shù):

    • first:一個(gè)輸入迭代器,指向要檢查的范圍的開始。
    • last:一個(gè)輸入迭代器,指向要檢查的范圍的結(jié)束。注意,這是一個(gè)尾后迭代器,不包含在范圍內(nèi)。
  2. 第二個(gè)版本的參數(shù):

    • first:一個(gè)輸入迭代器,指向要檢查的范圍的開始。
    • last:一個(gè)輸入迭代器,指向要檢查的范圍的結(jié)束。注意,這是一個(gè)尾后迭代器,不包含在范圍內(nèi)。
    • comp:一個(gè)用于比較兩個(gè)元素的函數(shù)或函數(shù)對(duì)象。它應(yīng)該返回一個(gè)布爾值,表示第一個(gè)參數(shù)是否小于第二個(gè)參數(shù)。

這兩個(gè)版本的函數(shù)都返回一個(gè)布爾值,如果范圍內(nèi)的元素已按非降序排列,則返回 true;否則返回 false。

下面是一個(gè)簡(jiǎn)單的示例,展示了如何使用 std::is_sorted

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

int main() {
    std::vector<int> v = {1, 2, 3, 4, 5};
    
    if (std::is_sorted(v.begin(), v.end())) {
        std::cout << "The vector is sorted."<< std::endl;
    } else {
        std::cout << "The vector is not sorted."<< std::endl;
    }
    
    return 0;
}

這段代碼將輸出 “The vector is sorted.”,因?yàn)橄蛄?v 中的元素已按非降序排列。

0