# is_sorted

Category: algorithms | Component type: function

### Prototype

`Is_sorted` is an overloaded name; there are actually two `is_sorted` functions.

    template <class ForwardIterator>
    bool is_sorted(ForwardIterator first, ForwardIterator last)

    template <class ForwardIterator, class StrictWeakOrdering>
    bool is_sorted(ForwardIterator first, ForwardIterator last,
                   StrictWeakOrdering comp)

### Description

`Is_sorted` returns `true` if the range `[first, last)` is sorted in ascending order, and `false` otherwise.

The two versions of `is_sorted` differ in how they define whether one element is less than another. The first version compares objects using `operator<`, and the second compares objects using the function object `comp`. The first version of `is_sorted` returns `true` if and only if, for every iterator `i` in the range `[first, last - 1)`, `*(i + 1) < *i` is `false`. The second version returns `true` if and only if, for every iterator `i` in the range `[first, last - 1)`, `comp(*(i + 1), *i)` is `false`

### Definition

Defined in algo.h.

### Requirements on types

For the first version:

- `ForwardIterator` is a model of Forward Iterator.
- `ForwardIterator`'s value type is a model of LessThan Comparable.
- The ordering on objects of `ForwardIterator`'s value type is a strict weak ordering, as defined in the LessThan Comparable requirements.

For the second version:

- `ForwardIterator` is a model of Forward Iterator.
- `StrictWeakOrdering` is a model of Strict Weak Ordering.
- `ForwardIterator`'s value type is convertible to `StrictWeakOrdering`'s argument type.

### Preconditions

- `[first, last)` is a valid range.

### Complexity

Linear. Zero comparisons if `[first, last)` is an empty range, otherwise at most `(last - first) - 1` comparisons.

### Example

    int A[] = {1, 4, 2, 8, 5, 7};
    const int N = sizeof(A) / sizeof(int);

    assert(!is_sorted(A, A + N));
    sort(A, A + N);
    assert(is_sorted(A, A + N));

### Notes

### See also

`sort`, `stable_sort`, `partial_sort`, `partial_sort_copy`, `sort_heap`, `binary_search`, `lower_bound`, `upper_bound`, `less<T>`, StrictWeakOrdering, LessThan Comparable

Copyright © 1999 Silicon Graphics, Inc. All Rights Reserved. TrademarkInformation