温馨提示×

c++中is_sorted函数的参数有哪些

c++
小樊
82
2024-09-15 18:07:57
栏目: 编程语言

std::is_sorted 是 C++ 标准库` 中的一个函数,用于检查范围内的元素是否已按非降序排列。其函数原型如下:

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

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

这里有两个版本的 is_sorted 函数,第一个版本使用 operator< 进行比较,而第二个版本允许你提供自定义的比较函数。以下是两个版本的参数说明:

  1. 第一个版本的参数:

    • first:一个输入迭代器,指向要检查的范围的开始。
    • last:一个输入迭代器,指向要检查的范围的结束。注意,这是一个尾后迭代器,不包含在范围内。
  2. 第二个版本的参数:

    • first:一个输入迭代器,指向要检查的范围的开始。
    • last:一个输入迭代器,指向要检查的范围的结束。注意,这是一个尾后迭代器,不包含在范围内。
    • comp:一个用于比较两个元素的函数或函数对象。它应该返回一个布尔值,表示第一个参数是否小于第二个参数。

这两个版本的函数都返回一个布尔值,如果范围内的元素已按非降序排列,则返回 true;否则返回 false

下面是一个简单的示例,展示了如何使用 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.”,因为向量 v 中的元素已按非降序排列。

0