Михаил Абрамян

Введение в стандартную библиотеку шаблонов C++. Описание, примеры использования, учебные задачи


Скачать книгу

N сравнений).

screen_image_42_285_60

      Определяет наибольший диапазон в пределах исходного диапазона [first, last), который начинается с first и представляет собой отсортированную последовательность. Возвращает позицию за концом найденного диапазона. Для сравнения элементов используется предикат comp(*p1, *p2) или (по умолчанию) операция <.

      Сложность линейная (не более N сравнений).

screen_image_42_392_60

      Меняет местами значения, на которые указывают итераторы a и b.

screen_image_42_419_60

      Возвращает true, если последовательность [first1, last1) «меньше» (в лексикографическом смысле), чем последовательность [first2, last2), и false в противном случае (в частности, если последовательности равны, то возвращается false, а если первая последовательность является собственным префиксом второй, то возвращается true). Для сравнения элементов используется предикат comp(*p1, *p2) или (по умолчанию) операция <.

      Сложность линейная (не более min{N1, N2} сравнений).

screen_image_43_55_76

      Проверяет, содержится ли в диапазоне [first, last) значение value, и возвращает итератор, который указывает на первое вхождение value (если значение не найдено, то итератор указывает на позицию в диапазоне, в которую можно вставить value, не нарушая порядка сортировки). Содержимое диапазона должно быть предварительно отсортировано в соответствии с порядком, задаваемым предикатом comp(*p1, *p2) или (по умолчанию) операцией <.

      Сложность логарифмическая (не более log N + 1 сравнений).

screen_image_43_173_76

      Переупорядочивает элементы диапазона [first, last), получая из него кучу (т. е. очередь с приоритетом, для которой первый элемент всегда больше остальных, а добавление нового элемента или удаление первого элемента может быть произведено за логарифмическое время, и результат тоже будет кучей). Для сравнения элементов используется предикат comp(*p1, *p2) или (по умолчанию) операция <.

      Сложность линейная (не более 3*N сравнений).

screen_image_43_268_76

      Возвращает большее из значений a и b (при их равенстве возвращается a). Для сравнения значений используется предикат comp(a, b) или (по умолчанию) операция <.

screen_image_43_317_76

      Возвращает позицию первого наибольшего элемента в диапазоне [first, last). В случае пустого диапазона возвращает last. Для сравнения элементов используется предикат comp(*p1, *p2) или (по умолчанию) операция <.

      Сложность линейная (max{N – 1, 0} сравнений).

screen_image_43_377_76

      Выполняет слияние двух предварительно отсортированных диапазонов [first1, last1) и [first2, last2) и копирование результата в последовательность, начиная с result (в выходной последовательности должно быть достаточно места для полученного набора данных). Возвращает выходной итератор, указывающий на позицию за концом добавленного набора данных. Выходной диапазон не должен накладываться ни на один из исходных диапазонов. Слияние является устойчивым; кроме того, в полученном диапазоне равные элементы из первого диапазона будут располагаться перед равными им элементами из второго диапазона. Для сравнения элементов используется предикат comp(*p1, *p2) или (по умолчанию) операция <.

      Сложность линейная (не более N1