Алгоритмы min_element()
и max_element()
возвращают итераторы на наименьший и наибольший элементы в исходной последовательности соответственно. Алгоритм minmax_element
возвращает пару, член first
которой содержит наименьший элемент, а член second
— наибольший.
Этот алгоритм сравнивает две последовательности в поисках первой неравной пары элементов. Используется либо оператор <
типа элемента, либо заданная функция сравнения. Обе последовательности обозначаются итераторами ввода.
lexicographical_compare(beg1, end1, beg2, end2)
lexicographical_compare(beg1, end1, beg2, end2, comp)
Алгоритм возвращает значение true
, если первая последовательность лексикографически меньше второй. В противном случае возвращается значение false
. Если одна последовательность короче второй и все ее элементы совпадают с соответствующими элементами более длинной последовательности, то более короткая последовательность лексикографически меньше. Если размер последовательностей совпадает и совпадают соответствующие элементы, то ни одна из них лексикографически не меньше другой.
А.2.10. Числовые алгоритмы
Числовые алгоритмы определены в заголовке numeric
. Этим алгоритмам требуются итераторы ввода; если алгоритм осуществляет запись в вывод, он использует итератор вывода для получателя.
accumulate(beg, end, init)
accumulate(beg, end, init, binaryOp)
Возвращает сумму всех значений в исходном диапазоне. Суммирование начинается с исходного значения, заданного параметром init
. Тип возвращаемого значения задает тип параметра init
. Первая версия использует оператор +
типа элемента, а вторая — указанный бинарный оператор.
inner_product(beg1, end1, beg2, init)
inner_product(beg1, end1, beg2, init, binOp1, binOp2)
Возвращает сумму элементов, полученных как произведение двух последовательностей. Обе последовательности обрабатываются совместно и элементы из каждой последовательности умножаются. Результат умножения суммируется. Исходное значение суммы определяет init
. Тип init
определяет тип возвращаемого значения.
Первая версия использует операторы умножения (*
) и сложения (+
) элементов. Вторая версия применяет заданные бинарные операторы, используя первый оператор вместо суммы и второй вместо умножения.
partial_sum(beg, end, dest)
partial_sum(beg, end, dest, binaryOp)
Пишет в dest
новую последовательность, каждое значение элемента которой представляет собой сумму всех предыдущих элементов до (и включая) своей позиции в пределах исходного диапазона. Первая версия использует оператор +
типа элемента, а вторая — заданный бинарный оператор. Возвращает итератор dest
, увеличенный так, чтобы указывать на следующий элемент после последнего записанного.
adjacent_difference(beg, end, dest)
adjacent_difference(beg, end, dest, binaryOp)
Пишет в dest
новую последовательность, каждое значение элемента которой, кроме первого, представляет собой разницу между текущими и предыдущим элементами. Первая версия использует оператор -
тип элемента, а вторая применяет заданный бинарный оператор.
iota(beg, end, val)
Присваивает val
первому элементу и осуществляет приращение val
. Присваивает приращенное значение следующему элементу и снова осуществляет приращение val
, а затем присваивает приращенное значение следующему элементу последовательности. Продолжает приращение val
и присваивает новое значение последующему элементу в исходной последовательности.
A.3. Случайные числа
Библиотека определяет набор классов процессоров случайных чисел и адаптеров, использующих различные математические подходы для генерации псевдослучайных чисел. Библиотека определяет также набор шаблонов распределений, обеспечивающих распределение чисел согласно различным вероятностям. Имена классов процессоров и распределений соответствуют их математическим свойствам.
Подробности генерации чисел этими классами не рассматриваются в данном издании. Здесь перечислены типы процессоров и распределений, но чтобы лучше узнать, как их использовать, следует обратиться к другим ресурсам.