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

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


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

последнюю (самую правую) подпоследовательность [first2, last2) в диапазоне [first1, last1). Возвращает итератор, который указывает на начало найденной подпоследовательности, или last1, если подпоследовательность не найдена. Для сравнения элементов используется предикат pred(*p1, *p2) или (по умолчанию) операция ==.

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

screen_image_40_150_60

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

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

screen_image_40_245_60

      Возвращает итератор, указывающий для диапазона [first, last) на первое вхождение элемента, для которого выражение pred(*p) возвращает true; если требуемые элементы отсутствуют, то возвращает last.

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

screen_image_40_306_60

      Возвращает итератор, указывающий для диапазона [first, last) на первое вхождение элемента, для которого выражение pred(*p) возвращает false; если требуемые элементы отсутствуют, то возвращает last.

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

screen_image_40_379_60

      Вызывает функциональный объект f (как f(*p)) для всех элементов из диапазона [first, last) и возвращает этот же функциональный объект.

      Сложность линейная (N вызовов f).

screen_image_40_428_60

      Заполняет диапазон [first, last), последовательно присваивая элементам диапазона результат вызова функционального объекта gen (как gen()).

      Сложность линейная (N вызовов gen).

screen_image_40_477_60

      Заполняет последовательность, начинающуюся с позиции first, n элементами, полученными в результате вызова функционального объекта gen (как gen()).

      Сложность линейная (n вызовов gen).

screen_image_41_55_76

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

      Сложность линейная (не более 2*(N1 + N2) – 1 сравнений).

screen_image_41_162_76

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

      Сложность линейная (N + 1 сравнений) или (при нехватке памяти) N*log N сравнений.

screen_image_41_291_76

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

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