Алгоритмы набора реализуют присущие набору операции, применяемые для отсортированной последовательности. Не следует путать эти алгоритмы с функциями библиотечного контейнера set
vector
, list
и т.д.) или другой последовательности (например, потока ввода).Поскольку эти алгоритмы обрабатывают элементы последовательно, им требуются
includes
всем им необходим dest
, увеличенный так, чтобы указывать на следующий элемент после последнего записанного.Каждый алгоритм предоставлен в двух формах: использующей для сравнения элементов оператор <
includes(beg, end, beg2, end2)
includes(beg, end, beg2, end2, comp)
Возвращает значение true
false
.set_union(beg, end, beg2, end2, dest)
set_union(beg, end, beg2, end2, dest, comp)
Создает сортируемую последовательность элементов, которые находятся в обеих последовательностях. Элементы, которые находятся в обеих последовательностях, записываются в указанную итератором dest
set_intersection(beg, end, beg2, end2, dest)
set_intersection(beg, end, beg2, end2, dest, comp)
Создает сортируемую последовательность элементов, представленных в обеих последовательностях. Результат сохраняется в последовательности, указанной итератором dest
set_difference(beg, end, beg2, end2, dest)
set_difference(beg, end, beg2, end2, dest, comp)
Создает сортируемую последовательность элементов, представленных в первом контейнере, но не во втором.
set_symmetric_difference(beg, end, beg2, end2, dest)
set_symmetric_difference(beg, end, beg2, end2, dest, comp)
Создает сортируемую последовательность элементов, представленных в любом из контейнеров, но не в обоих контейнерах.
А.2.9. Минимальные и максимальные значения
Эти алгоритмы используют при сравнении либо оператор <
min(val1, val2)
min(val1, val2, comp)
min(init_list)
min(init_list, comp)
max(val1, val2)
max(val1, val2, comp)
max(init_list)
max(init_list, comp)
Эти алгоритмы возвращают минимум или максимум значений val1
val2
либо значений из списка initializer_list
. Тип аргументов должен точно совпадать. Аргументы и тип возвращаемого значения являются ссылками на константы, а значит, объекты не копируются.minmax(val1, val2)
minmax(val1, val2, comp)
minmax(init_list)
minmax(init_list, comp)
Возвращают пару (см. раздел 11.2.3), член first
second
— большее. Версия со списком initializer_list
возвращает пару, член first
которой содержит наименьшее значение в списке, a second
— наибольшее.min_element(beg, end)
min_element(beg, end, comp)
max_element(beg, end)
max_element(beg, end, comp)
minmax_element(beg, end)
minmax_element(beg, end, comp)
Алгоритмы min_element()
max_element()
возвращают итераторы на наименьший и наибольший элементы в исходной последовательности соответственно. Алгоритм minmax_element
возвращает пару, член first
которой содержит наименьший элемент, а член second
— наибольший.Этот алгоритм сравнивает две последовательности в поисках первой неравной пары элементов. Используется либо оператор <
lexicographical_compare(beg1, end1, beg2, end2)
lexicographical_compare(beg1, end1, beg2, end2, comp)