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

Читать онлайн книгу Введение в стандартную библиотеку шаблонов C++. Описание, примеры использования, учебные задачи - Михаил Абрамян страница 14

СКАЧАТЬ (first, last] (обратите внимание на границы этого диапазона), но другие части выходного диапазона могут накладываться на исходный диапазон. Таким образом, данный алгоритм можно применять для «копирования вправо», т. е. копирования в ситуации, когда правая граница выходного диапазона находится справа от исходного диапазона.

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

screen_image_38_372_60

      Копирует в диапазон, начинающийся с result, все элементы диапазона [first, last), для которых pred возвращает true. Возвращает позицию за последним скопированным элементом в полученном диапазоне. Относительный порядок элементов в полученном диапазоне сохраняется. Исходный и результирующий диапазоны не должны перекрываться.

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

screen_image_38_480_60

      Копирует в диапазон, начинающийся с result, n элементов диапазона, начинающегося с first.

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

screen_image_39_55_76

      Возвращает количество элементов в диапазоне [first, last), которые равны значению value.

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

screen_image_39_105_76

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

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

screen_image_39_166_76

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

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

screen_image_39_249_76

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

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

screen_image_39_378_76

      Заполняет выходной диапазон [first, last) значениями value.

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

screen_image_39_415_76

      Заполняет выходной диапазон из n элементов, начиная с first, значениями value.

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

screen_image_39_464_76

      Возвращает итератор, указывающий на первое вхождение элемента value в диапазоне [first, last), или last, если элемент value отсутствует. Для сравнения элементов используется операция ==.

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

screen_image_40_56_60

      Находит последнюю (самую правую) подпоследовательность [first2, last2) в диапазоне [first1, last1). Возвращает итератор, который указывает на начало найденной СКАЧАТЬ