std::is_sorted
![]() |
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google.
Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке. Щёлкните здесь, чтобы увидеть английскую версию этой страницы |
Определено в заголовочном файле <algorithm>
|
||
template< class ForwardIt > bool is_sorted( ForwardIt first, ForwardIt last ); |
(1) | (начиная с C++11) |
template< class ForwardIt, class Compare > bool is_sorted( ForwardIt first, ForwardIt last, Compare comp ); |
(2) | (начиная с C++11) |
Checks if the elements in range [first, last)
are sorted in ascending order. The first version of the function uses operator< to compare the elements, the second uses the given comparison function comp
.
Содержание |
[править] Параметры
first, last | - | диапазон элементов для изучения
Оригинал: the range of elements to examine Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
comp | - | функция сравнения, возвращающая true если первый аргумент меньше второго. Сигнатура функции сравнения должна быть эквивалентна следующей: bool cmp(const Type1 &a, const Type2 &b); Сигнатура на обязана содержать const &, однако, функция на может изменять переданные объекты. |
Требования к типам | ||
-ForwardIt должен соответствовать требованиям ForwardIterator .
|
[править] Возвращаемое значение
true if the elements in the range are sorted in ascending order
[править] Сложность
first
и last
first
and last
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
[править] Возможная реализация
Первый вариант |
---|
template<class ForwardIt> bool is_sorted(ForwardIt first, ForwardIt last) { return std::is_sorted_until(first, last) == last; } |
Второй вариант |
template<class ForwardIt, class Compare> bool is_sorted(ForwardIt first, ForwardIt last, Compare comp) { return std::is_sorted_until(first, last, comp) == last; } |
[править] Пример
#include <iostream> #include <algorithm> int main() { const int N = 5; int digits[N] = {3, 1, 4, 1, 5}; for (auto i : digits) std::cout << i << ' '; std::cout << ": is_sorted: " << std::is_sorted(digits, digits+N) << '\n'; std::sort(digits, digits+N); for (auto i : digits) std::cout << i << ' '; std::cout << ": is_sorted: " << std::is_sorted(digits, digits+N) << '\n'; }
Вывод:
3 1 4 1 5 : is_sorted: 0 1 1 3 4 5 : is_sorted: 1
[править] См. также
(C++11) |
находит наибольшее отсортированы поддиапазоне Оригинал: finds the largest sorted subrange Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) |