template ‹class InputIterator, class T, class Size›
void count(InputIterator first, InputIterator last, const T& value, Size& n);
template ‹class InputIterator, class Predicate, class Size›
void count_if(InputIterator first, InputIterator last, Predicate pred, Size& n);
count добавляет к n число итераторов i в диапазоне [first, last), для которых соблюдаются следующие соответствующие
условия: *i==value, pred(*i)==true. Соответствующий предикат применяется точно last-first раз.
count должен сохранять результат в параметре ссылки вместо того, чтобы возвращать его, потому что тип размера не может быть выведен из встроенных типов итераторов, как, например, int*.
Отличие (Mismatch)
template ‹class InputIterator1, class InputIterator2›
mismatch возвращает пару итераторов i и j таких, что j==first2 + (i - first1) и i является первым итератором в диапазоне [first1, last1), для которого следующие соответствующие условия выполнены: !(*i==*(first2 + (i - first1))), binary_pred (*i, *(first2 + (i - first1)))==false. Если такой итератор i не найден, пара last1 и first2 + (last1 - first1) возвращается. Соответствующий предикат применяется, самое большее, last1 - first1 раз.
Сравнение на равенство (Equal)
template ‹class InputIterator1, class InputIterator2›
equal возвращает true, если для каждого итератора i в диапазоне [first1, last1) выполнены следующие соответствующие условия: *i==*(first2 + (i-first1)), binary_pred(*i, *(first2 + (i - first1)))==true. Иначе equal возвращает false. Соответствующий предикат применяется, самое большее, last1 - first1 раз.
Поиск подпоследовательности (Search)
template ‹class ForwardIterator1, class ForwardIterator2›
равных значений в последовательности. search возвращает первый итератор i в диапазоне [first1, last1 - (last2 - first2)) такой, что для любого неотрицательного целого числа n, меньшего чем last2 - first2, выполнены следующие соответствующие условия: *(i+n)==*(first2+n), binary_pred(*(i+n), *(first2+n))==true. Если такой итератор не найден, возвращается last1. Соответствующий предикат применяется, самое большее, (last1 - first1) * (last2 - first2) раз. Квадратичное поведение, однако, является крайне маловероятным.
Меняющие последовательность операции (Mutating sequence operations)
Копировать (Copy)
template ‹class InputIterator, class OutputIterator›
OutputIterator copy(InputIterator first, InputIterator last, OutputIterator result);
copy копирует элементы. Для каждого неотрицательного целого числа n ‹ (last - first) выполняется присваивание *(result + n) = *(first + n). Точно делается last - first присваиваний. Результат copy не определён, если result находится в диапазоне [first, last).
template ‹class BidirectionalIterator1, class BidirectionalIterator2›
BidirectionalIterator2 copy_backward(BidirectionalIterator1 first, BidirectionalIterator1 last, BidirectionalIterator2 result);
copy_backward копирует элементы в диапазоне [first, last) в диапазон [result - (last - first), result), начиная от last-1 и продолжая до first. Его нужно использовать вместо copy, когда last находится в диапазоне [result - (last-first), result). Для каждого положительного целого числа n ‹= (last - first) выполняется присваивание *(result-n) = *(last-n). copy_backward возвращает result - (last-first). Точно делается last - first присваиваний. Результат copy_backward не определён, если result находится в диапазоне [first, last).
Обменять (Swap)
template ‹class T›
void swap(T& a, T& b);
swap обменивает значения, хранимые в двух местах.
template ‹class ForwardIterator1, class ForwardIterator2›
void iter_swap(ForwardIterator1 a, ForwardIterator2 b);
iter_swap обменивает значения, указанные двумя итераторами a и b.
tempate ‹class ForwardIterator1, class ForwardIterator2›
Для каждого неотрицательного целого числа n ‹ (last1 - first1) выполняется перестановка: swap(*(first1 + n), *(first2 + n)). swap_ranges возвращает first2 + (last1 - first1). Выполняется точно last1 - first1 перестановок. Результат swap_ranges не определён, если два диапазона [first1, last1) и [first2, first2 + (last1 - first1)) перекрываются.
Преобразовать (Transform)
template ‹class InputIterator, class OutputIterator, class UnaryOperation›