is_sorted() in C++ STL (original) (raw)

Last Updated : 3 Mar, 2026

In C++, is_sorted() is a built-in function used to check whether the elements in the given range are sorted or not in ascending order by default. You can also provide a custom comparator to check for descending order or any other sorting criteria.

For example: Let's create a vector and check if the elements are sorted using is_sorted() method.

C++ `

#include <bits/stdc++.h> using namespace std;

int main() { vector v = {1, 5, 6, 8, 9};

if (is_sorted(v.begin(), v.end()))
    cout << "Sorted";
else
    cout << "Not Sorted";
return 0;

}

`

Syntax

is_sorted() is defined inside ****** header file.

****is_sorted(**first, last, comp);

**Parameters:

**Return Value: Returns **true, if the range is sorted otherwise it returns **false.

Examples of is_sorted()

The following examples demonstrates the use of is_sorted() method in different scenario:

Check if an Array is Sorted in Ascending Order

C++ `

#include <bits/stdc++.h> using namespace std;

int main() { int arr[] = {4, 7, 8, 9}; int n = sizeof(arr)/sizeof(arr[0]);

// Check whether array is sorted in ascending
  // order
if (is_sorted(arr, arr + n))
    cout << "Sorted";
else
    cout << "Not Sorted";
return 0;

}

`

Output

Given Array is Sorted

Check if Part of a Vector is Sorted

We can check if a given vector or array is sorted within a specified range.

C++ `

#include <bits/stdc++.h> using namespace std;

int main() { vector v = {11, 25, 6, 8, 9, 10};

if (is_sorted(v.begin()+2, v.end()))
    cout << "Sorted";
else
    cout << "Not Sorted";
return 0;

}

`

**Explanation: is_sorted(v.begin()+2, v.end()) check if the vector is sorted from index '2' till the end.

Check if a List is Sorted in Descending Order

C++ `

#include <bits/stdc++.h> using namespace std;

// Comparator function bool comp(int a, int b) { return a > b; }

int main() { list l = {9, 7, 6, 3};

// Check vector Sorted in descending order
if (is_sorted(l.begin(), l.end(), comp))
    cout << "Sorted";
else
    cout << "Not Sorted";
return 0;

}

`

Output

Given Vector is Sorted

Check if Vector of String is in Lexicographically Ordered

C++ `

#include <bits/stdc++.h> using namespace std;

int main() { vector v = {"hi", "geeks", "welcome", "to" "geeksforgeeks"};

// Check vector sorted in user
// defined order or not
if (is_sorted(v.begin(), v.end()))
    cout << "Sorted";
else
    cout << "Not Sorted";
return 0;

}

`

Output

Given Vector is Sorted

Check if Set is Sorted in Descending Order

C++ `

#include <bits/stdc++.h> using namespace std;

// Comparator function bool comp(int a, int b) { return a > b; }

int main() { set s = {9, 7, 6, 3};

// Check vector Sorted in descending order
if (is_sorted(s.begin(), s.end(), comp))
    cout << "Sorted";
else
    cout << "Not Sorted";
return 0;

}

`

**Explanation: The set is already sorted in ascending order. We have used is_sorted() with custom comparator to check if the set is in descending order.