📜  C++ STL-algorithm.is_sorted()函数(1)

📅  最后修改于: 2023-12-03 15:29:50.024000             🧑  作者: Mango

C++ STL-algorithm.is_sorted()函数

简介

is_sorted()函数是C++ STL提供的一个算法函数,用于判断指定区间内的元素是否已按升序排列。

该函数的返回值是一个bool类型,当指定区间已按升序排列时,返回true,否则返回false。

函数原型
template <class ForwardIt>
bool is_sorted(ForwardIt first, ForwardIt last);

该函数接收两个参数,分别为指向待检查区间的首元素和尾元素的迭代器。

要注意的是,该函数要求待检查区间是升序排列的,如果待检查区间不是升序排列的,则返回的结果是不可预期的。

用法示例

以下是一个使用is_sorted()函数的示例代码:

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

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

    if(std::is_sorted(vec1.begin(), vec1.end())) {
        std::cout << "vec1 is sorted ascendingly\n";
    }
    if(std::is_sorted(vec2.begin(), vec2.end())) {
        std::cout << "vec2 is sorted ascendingly\n";
    }
    return 0;
}

输出结果为:

vec1 is sorted ascendingly
注意事项
  1. is_sorted()函数要求待检查区间是按升序排列的,如果待检查区间不是按升序排列的,则返回的结果是不可预期的。
  2. 如果待检查区间为空,则函数直接返回true。
  3. 函数返回的结果可能受到指定区间的元素类型和比较函数的影响,因此在使用该函数时,需要保证待检查区间的元素类型和比较函数是正确的。