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

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

СКАЧАТЬ (output);

      • FwdIter – однонаправленный итератор (forward);

      • BidiIter – двунаправленный итератор (bidirectional);

      • RandIter – итератор произвольного доступа (random).

      В качестве типа значения для входных последовательностей указывается T; если выходная последовательность может иметь тип элементов, отличный от T, то для него используется имя TRes. Итераторы из диапазонов [first, last), [first1, last1), [first2, last2) обозначаются с помощью переменных p, p1, p2 соответственно.

      Для типов функциональных объектов в описаниях алгоритмов используются следующие имена:

      • UnaryOp – унарная операция (функциональный объект с операцией (), имеющей один параметр типа T; при этом тип возвращаемого значения может отличаться от типа T);

      • BinaryOp – бинарная операция (функциональный объект с операцией (), имеющей два параметра, как правило, одинакового типа T; тип возвращаемого значения может отличаться от типа T); если параметры бинарной операции могут иметь различные типы, то об этом явно говорится в описании соответствующего алгоритма;

      • Predicate – унарный предикат (унарная операция, возвращающая логическое значение);

      • BinaryPredicate – бинарный предикат (бинарная операция с параметрами типа T, возвращающая логическое значение);

      • Compare – бинарный предикат, предназначенный для сравнения элементов (аналог операции <);

      • Generator – генератор последовательности (функциональный объект с операцией (), не имеющей параметров и возвращающей значение типа TRes);

      • RandomGenerator – генератор случайных целых чисел, равномерно распределенных в диапазоне [0, n).

      Во всех алгоритмах, связанных с копированием или перемещением данных, предполагается, что в результирующей последовательности зарезервировано достаточно места для размещения всех получаемых элементов.

      Всюду при указании сложности алгоритма под N понимается разность итераторов distance(first, last) (если N имеет индекс, то подразумевается, что итераторы имеют такой же номер, например N1 = distance(first1, last1)). Если сложность алгоритма является постоянной, т. е. не зависит от размера обрабатываемой последовательности, то она не указывается.

      1.3.3. Алгоритмы общего назначения

      Алгоритмы, описываемые в данном пункте, определены в заголовочном файле <algorithm>.

screen_image_37_282_76

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

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

screen_image_37_365_76

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

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

screen_image_37_427_76

      Возвращает true, если хотя бы один элемент диапазона [first, last) удовлетворяет предикату pred. В случае пустого диапазона возвращается false.

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

screen_image_37_490_76

СКАЧАТЬ