Название | Введение в стандартную библиотеку шаблонов C++. Описание, примеры использования, учебные задачи |
---|---|
Автор произведения | Михаил Абрамян |
Жанр | Учебная литература |
Серия | |
Издательство | Учебная литература |
Год выпуска | 2017 |
isbn | 978-5-9275-2374-0 |
Возвращает true, если хотя бы один элемент диапазона [first, last) удовлетворяет предикату pred. В случае пустого диапазона возвращается false.
Сложность линейная (не более N вызовов pred).
Использует двоичный поиск для проверки того, содержится ли в диапазоне [first, last) значение value (если значение найдено, то возвращает true, иначе false). Содержимое диапазона должно быть предварительно отсортировано в соответствии с порядком, задаваемым предикатом comp(*p1, *p2) или (по умолчанию) операцией <.
Сложность логарифмическая (не более log N + 2 сравнений).
Копирует элементы из [first, last) в диапазон, начинающийся с result, и возвращает позицию за последним скопированным элементом в полученном диапазоне. Итератор result не может находиться в исходном диапазоне [first, last), но другие части выходного диапазона могут накладываться на исходный диапазон. Таким образом, данный алгоритм можно применять для «копирования влево», т. е. копирования в ситуации, когда левая граница выходного диапазона находится слева от исходного диапазона.
Сложность линейная (N присваиваний).
Выполняет те же действия, что и copy, но перебирает исходные данные в обратном порядке: от элемента, предшествующего last, до first. Итератор result_last должен указывать на элемент, следующий за концом выходной последовательности; возвращаемое значение – это итератор, указывающий на первый элемент выходной последовательности. Итератор result_last не может находиться в диапазоне (first, last] (обратите внимание на границы этого диапазона), но другие части выходного диапазона могут накладываться на исходный диапазон. Таким образом, данный алгоритм можно применять для «копирования вправо», т. е. копирования в ситуации, когда правая граница выходного диапазона находится справа от исходного диапазона.
Сложность линейная (N присваиваний).
Копирует в диапазон, начинающийся с result, все элементы диапазона [first, last), для которых pred возвращает true. Возвращает позицию за последним скопированным элементом в полученном диапазоне. Относительный порядок элементов в полученном диапазоне сохраняется. Исходный и результирующий диапазоны не должны перекрываться.
Сложность линейная (N сравнений).
Копирует в диапазон, начинающийся с result, n элементов диапазона, начинающегося с first.
Сложность линейная (n присваиваний).
Возвращает количество элементов в диапазоне [first, last), которые равны значению value.
Сложность линейная (N сравнений).
Возвращает количество элементов в диапазоне [first, last), для которых выражение pred(*p) равно true.
Сложность линейная (N вызовов pred).
Возвращает true, если два диапазона содержат одни и те же элементы в одинаковом порядке. Первый диапазон – [first1, last1), второй начинается с first2 и имеет такую же длину; диапазоны могут перекрываться. Для сравнения используется предикат pred(*p1, *p2) или (по умолчанию) операция ==.
Сложность линейная