Namespaces
Variants

Parallelized version of existing algorithms (parallelism TS)

From cppreference.net

Расширения C++ для Parallelism TS предоставляют параллелизованные версии следующих 69 существующих алгоритмов. Каждый из следующих параллелизованных алгоритмов

  • объявляется в пространстве имён std::experimental::parallel ,
  • не участвует в разрешении перегрузки, если is_execution_policy<std::decay_t<ExecutionPolicy>>::value не равно true , и
  • имеет ту же семантику, что и соответствующий существующий алгоритм в стандартной библиотеке C++, за исключением случаев, указанных на странице параллельных алгоритмов .


**Примечание:** В данном случае весь текст внутри тегов ` ` (представленных классом `mw-geshi cpp source-cpp`) содержит C++ специфичные термины и синтаксис, которые не подлежат переводу согласно инструкциям. Остальной текст на странице отсутствует или уже находится внутри HTML тегов, которые не должны переводиться. Перевод выполнен с сохранением всех HTML-тегов, атрибутов и C++ специфических терминов. Текст в тегах ` `, `
`, `` не переводился.
**Примечание:** В данном случае весь текст внутри тегов ` ` и `

` содержит C++ код, который согласно инструкциям не подлежит переводу. Единственный текст вне кода - это название функции `std::mismatch` в правой колонке, которое также является C++ специфичным термином и не переводится.

**Примечание:** В данном фрагменте HTML-кода весь текст, подлежащий переводу, уже находится внутри тегов ` `, `
` или является C++ специфическими терминами, которые не должны переводиться согласно вашим требованиям. Поэтому перевод не требуется, и исходный код сохранен без изменений.
**Примечание:** Весь код C++ внутри тегов ` ` оставлен без изменений, как и требовалось. HTML-теги и атрибуты также сохранены в оригинальном виде. **Примечание:** В данном фрагменте HTML-кода отсутствует переводимый текст - все содержимое состоит из HTML-тегов, атрибутов и C++ кода внутри тегов ` `, которые согласно инструкциям не подлежат переводу. **Примечание:** В данном случае весь текст находится внутри HTML-тегов ` `, которые содержат C++ код, поэтому согласно инструкциям перевод не выполняется. HTML-структура и C++ код полностью сохранены в оригинальном виде. **Примечание:** В данном случае весь текст внутри тегов ` ` является C++ кодом и не подлежит переводу согласно вашим требованиям. Единственный элемент, который мог бы быть переведен - это текст в атрибуте `title` тега ` `, но он также относится к C++ специфике и оставлен без изменений. **Примечание:** В данном фрагменте HTML-кода отсутствует текст для перевода на русский язык. Весь представленный контент состоит из: - HTML-тегов и атрибутов (которые не подлежат переводу) - C++ кода внутри тегов ` ` (который не должен переводиться согласно инструкциям) - Специфических C++ терминов (которые должны сохраняться в оригинале) Единственный потенциально переводимый элемент - атрибут `title="cpp/algorithm/reverse"` - также является технической ссылкой и не требует перевода. **Примечание:** Весь код C++ внутри тегов ` ` оставлен без изменений, как и требовалось. HTML-теги и атрибуты также сохранены в оригинальном виде. **Примечание:** Весь код C++ внутри тегов ` ` оставлен без изменений, как и требовалось. HTML-теги и атрибуты также сохранены в оригинальном виде. **Примечание:** В данном случае весь текст внутри тегов ` ` (который здесь представлен как ` `) содержит C++ код, поэтому он не был переведен в соответствии с требованиями. Единственный текст вне кода - это название функции в ссылке, но поскольку это стандартное имя функции C++, оно также не переводится. **Примечание:** Весь код C++ внутри тегов ` ` оставлен без изменений, как и требовалось в инструкциях. HTML-теги и атрибуты также сохранены в оригинальном виде. **Примечание:** В данном фрагменте HTML-кода отсутствует текст для перевода, требующий локализации на русский язык. Весь представленный контент состоит из: - HTML-тегов и атрибутов (не подлежат переводу) - C++ кода внутри тегов ` ` (не подлежит переводу согласно инструкциям) - Технических терминов C++ (сохранены в оригинале) Единственный потенциально переводимый элемент - атрибут `title="cpp/algorithm/partial sort copy"` - также содержит техническое название функции C++ и не требует перевода. **Примечание:** В данном случае весь текст находится внутри тегов ` ` или является C++ специфическими терминами, поэтому перевод не требуется. HTML структура и форматирование полностью сохранены. **Примечание:** В данном случае весь текст находится внутри HTML-тегов ` ` и содержит исключительно C++ код, поэтому согласно инструкциям перевод не выполняется. Сохранена оригинальная структура и форматирование HTML. **Примечание:** Весь код C++ внутри тегов ` ` оставлен без изменений, как и требовалось. HTML-теги и атрибуты также сохранены в оригинальном виде. **Примечание:** Весь код C++ внутри тегов ` ` оставлен без изменений, как и требовалось. HTML-теги и атрибуты также сохранены в оригинальном виде. **Примечание:** В данном случае весь текст внутри тегов ` `, `
` и `` сохранен без изменений, как и требовалось. HTML-теги и атрибуты также остались нетронутыми. C++ специфические термины (такие как имена функций, типов и параметров) не переведены для сохранения технической точности.
**Примечание:** В данном фрагменте HTML-кода не содержится переводимого текста, так как: - Все содержимое находится внутри тегов ` `, которые содержат C++ код - C++ специфические термины не подлежат переводу согласно инструкциям - В ссылке ` ` текст "cpp/algorithm/inner product" является техническим путем и не требует перевода Единственный элемент, который мог бы быть переведен - это название функции `inner_product`, но согласно требованиям, C++ специфические термины не переводятся. **Примечание:** В данном случае весь текст внутри тегов ` `, `
` и `` сохранен без изменений, как и требовалось. HTML-теги и атрибуты также сохранены в оригинальном виде. C++ специфические термины (такие как имена функций, типов и параметров) не переведены для сохранения технической точности.
**Примечание:** В данном фрагменте HTML-кода отсутствует переводимый текст, требующий перевода на русский язык. Весь представленный контент состоит из: - HTML-тегов и атрибутов (которые не подлежат переводу) - C++ кода внутри тегов ` ` (который не должен переводиться согласно инструкциям) - Технических терминов C++ (которые должны сохраняться в оригинале) Единственный потенциально переводимый элемент - это текст в атрибуте `title="cpp/memory/uninitialized fill n"`, но он также представляет собой техническую ссылку и должен оставаться без изменений для сохранения функциональности.

Содержание

Операции с неизменяемыми последовательностями
Параллелизованный алгоритм Существующий алгоритм
template < class ExecutionPolicy, class InputIt, class UnaryPred >

bool all_of ( ExecutionPolicy && policy, InputIt first, InputIt last,
UnaryPred p ) ;

std::all_of
template < class ExecutionPolicy, class InputIt, class UnaryPred >

bool any_of ( ExecutionPolicy && policy, InputIt first, InputIt last,
UnaryPred p ) ;

std::any_of
template < class ExecutionPolicy, class InputIt, class UnaryPred >

bool none_of ( ExecutionPolicy && policy, InputIt first, InputIt last,
UnaryPred p ) ;

std::none_of
template < class ExecutionPolicy, class InputIt, class T >

typename iterator_traits < InputIt > :: difference_type
count ( ExecutionPolicy && policy, InputIt first, InputIt last,
const T & value ) ;

std::count
template < class ExecutionPolicy, class InputIt, class UnaryPred >

typename iterator_traits < InputIt > :: difference_type
count_if ( ExecutionPolicy && policy, InputIt first, InputIt last,
UnaryPred p ) ;

std::count_if
template < class ExecutionPolicy, class InputIt1, class InputIt2 >

std:: pair < InputIt1,InputIt2 >
mismatch ( ExecutionPolicy && policy,
InputIt1 first1, InputIt1 last1,
InputIt2 first2 ) ;

template < class ExecutionPolicy, class InputIt1,
class InputIt2, class BinaryPred >
std:: pair < InputIt1,InputIt2 >
mismatch ( ExecutionPolicy && policy,
InputIt1 first1, InputIt1 last1,
InputIt2 first2, BinaryPred p ) ;

template < class ExecutionPolicy, class InputIt1, class InputIt2 >
std:: pair < InputIt1,InputIt2 >
mismatch ( ExecutionPolicy && policy,
InputIt1 first1, InputIt1 last1,
InputIt2 first2, InputIt2 last2 ) ;

template < class ExecutionPolicy, class InputIt1,
class InputIt2, class BinaryPred >
std:: pair < InputIt1,InputIt2 >
mismatch ( ExecutionPolicy && policy,
InputIt1 first1, InputIt1 last1,
InputIt2 first2, InputIt2 last2, BinaryPred p ) ;

std::mismatch
template < class ExecutionPolicy, class InputIt1, class InputIt2 >

bool equal ( ExecutionPolicy && policy,
InputIt1 first1, InputIt1 last1,
InputIt2 first2 ) ;

template < class ExecutionPolicy, class InputIt1,
class InputIt2, class BinaryPred >
bool equal ( ExecutionPolicy && policy,
InputIt1 first1, InputIt1 last1,
InputIt2 first2, BinaryPred p ) ;

template < class ExecutionPolicy, class InputIt1, class InputIt2 >
bool equal ( ExecutionPolicy && policy,
InputIt1 first1, InputIt1 last1,
InputIt2 first2, InputIt2 last2 ) ;

template < class ExecutionPolicy, class InputIt1,
class InputIt2, class BinaryPred >
bool equal ( ExecutionPolicy && policy,
InputIt1 first1, InputIt1 last1,
InputIt2 first2, InputIt2 last2, BinaryPred p ) ;

std::equal
template < class ExecutionPolicy, class InputIt, class T >

InputIt find ( ExecutionPolicy && policy, InputIt first, InputIt last,
const T & value ) ;

std::find
template < class ExecutionPolicy, class InputIt, class UnaryPred >

InputIt find_if ( ExecutionPolicy && policy, InputIt first, InputIt last,
UnaryPred p ) ;

std::find_if
template < class ExecutionPolicy, class InputIt, class UnaryPred >

InputIt find_if_not ( ExecutionPolicy && policy,
InputIt first, InputIt last,
UnaryPred p ) ;

std::find_if_not
template < class ExecutionPolicy, class ForwardIt1, class ForwardIt2 >

ForwardIt1 find_end ( ExecutionPolicy && policy,
ForwardIt1 first, ForwardIt1 last,
ForwardIt2 s_first, ForwardIt2 s_last ) ;

template < class ExecutionPolicy, class ForwardIt1,
class ForwardIt2, class BinaryPred >
ForwardIt1 find_end ( ExecutionPolicy && policy,
ForwardIt1 first, ForwardIt1 last,
ForwardIt2 s_first, ForwardIt2 s_last,
BinaryPred p ) ;

std::find_end
template < class ExecutionPolicy, class InputIt, class ForwardIt >

InputIt find_first_of ( ExecutionPolicy && policy,
InputIt first, InputIt last,
ForwardIt s_first, ForwardIt s_last ) ;

template < class ExecutionPolicy, class InputIt,
class ForwardIt, class BinaryPred >
InputIt find_first_of ( ExecutionPolicy && policy,
InputIt first, InputIt last,
ForwardIt s_first, ForwardIt s_last,
BinaryPred p ) ;

std::find_first_of
template < class ExecutionPolicy, class ForwardIt >

ForwardIt adjacent_find ( ExecutionPolicy && policy,
ForwardIt first, ForwardIt last ) ;

template < class ExecutionPolicy, class ForwardIt, class BinaryPred >
ForwardIt adjacent_find ( ExecutionPolicy && policy,
ForwardIt first, ForwardIt last,
BinaryPred p ) ;

std::adjacent_find
template < class ExecutionPolicy, class ForwardIt1, class ForwardIt2 >

ForwardIt1 search ( ExecutionPolicy && policy,
ForwardIt1 first, ForwardIt1 last,
ForwardIt2 s_first, ForwardIt2 s_last ) ;

template < class ExecutionPolicy, class ForwardIt1,
class ForwardIt2, class BinaryPred >
ForwardIt1 search ( ExecutionPolicy && policy,
ForwardIt1 first, ForwardIt1 last,
ForwardIt2 s_first, ForwardIt2 s_last,
BinaryPred p ) ;

std::search
template < class ExecutionPolicy, class ForwardIt, class Size, class T >

ForwardIt search_n ( ExecutionPolicy && policy,
ForwardIt first, ForwardIt last,
Size count, const T & value ) ;

template < class ExecutionPolicy, class ForwardIt,
class Size, class T, class BinaryPred >
ForwardIt search_n ( ExecutionPolicy && policy,
ForwardIt first, ForwardIt last,
Size count, const T & value,
BinaryPred p ) ;

std::search_n
Операции модифицирующие последовательности
Параллелизованный алгоритм Существующий алгоритм
template < class ExecutionPolicy, class InputIt, class OutputIt >

OutputIt copy ( ExecutionPolicy && policy, InputIt first, InputIt last,
OutputIt d_first ) ;

std::copy
template < class ExecutionPolicy, class InputIt,

class OutputIt, class UnaryPred >
OutputIt copy_if ( ExecutionPolicy && policy, InputIt first, InputIt last,
OutputIt d_first, UnaryPred pred ) ;

std::copy_if
template < class ExecutionPolicy, class InputIt,

class Size, class OutputIt >
OutputIt copy_n ( ExecutionPolicy && policy, InputIt first, Size count,
OutputIt result ) ;

std::copy_n
template < class ExecutionPolicy, class InputIt, class OutputIt >

OutputIt move ( ExecutionPolicy && policy, InputIt first, InputIt last,
OutputIt d_first ) ;

std::move
template < class ExecutionPolicy, class ForwardIt, class T >

void fill ( ExecutionPolicy && policy, ForwardIt first, ForwardIt last,
const T & value ) ;

std::fill
template < class ExecutionPolicy, class OutputIt, class Size, class T >

OutputIt fill_n ( ExecutionPolicy && policy, OutputIt first, Size count,
const T & value ) ;

std::fill_n
template < class ExecutionPolicy, class InputIt,

class OutputIt, class UnaryOp >
OutputIt transform ( ExecutionPolicy && policy,
InputIt first1, InputIt last1,
OutputIt d_first, UnaryOp unary_op ) ;

template < class ExecutionPolicy, class InputIt1, class InputIt2,
class OutputIt, class BinaryOp >
OutputIt transform ( ExecutionPolicy && policy,
InputIt1 first1, InputIt1 last1,
InputIt2 first2, OutputIt d_first,
BinaryOp binary_op ) ;

std::transform
template < class ExecutionPolicy, class ForwardIt, class Generator >

void generate ( ExecutionPolicy && policy, ForwardIt first, ForwardIt last,
Generator g ) ;

std::generate
template < class ExecutionPolicy, class OutputIt,

class Size, class Generator >
OutputIt generate_n ( ExecutionPolicy && policy, OutputIt first,
Size count, Generator g ) ;

std::generate_n
template < class ExecutionPolicy, class ForwardIt, class T >

ForwardIt remove ( ExecutionPolicy && policy,
ForwardIt first, ForwardIt last, const T & value ) ;

std::remove
template < class ExecutionPolicy, class ForwardIt, class UnaryPred >

ForwardIt remove_if ( ExecutionPolicy && policy,
ForwardIt first, ForwardIt last, UnaryPred p ) ;

std::remove_if
template < class ExecutionPolicy, class InputIt, class OutputIt, class T >

OutputIt remove_copy ( ExecutionPolicy && policy,
InputIt first, InputIt last,
OutputIt d_first, const T & value ) ;

std::remove_copy
template < class ExecutionPolicy, class InputIt,

class OutputIt, class UnaryPred >
OutputIt remove_copy_if ( ExecutionPolicy && policy,
InputIt first, InputIt last,
OutputIt d_first, UnaryPred p ) ;

std::remove_copy_if
template < class ExecutionPolicy, class ForwardIt, class T >

void replace ( ExecutionPolicy && policy,
ForwardIt first, ForwardIt last,
const T & old_value, const T & new_value ) ;

std::replace
template < class ExecutionPolicy, class ForwardIt,

class UnaryPred, class T >
void replace_if ( ExecutionPolicy && policy,
ForwardIt first, ForwardIt last,
UnaryPred p, const T & new_value ) ;

std::replace_if
template < class ExecutionPolicy, class InputIt, class OutputIt, class T >

OutputIt replace_copy ( ExecutionPolicy && policy,
InputIt first, InputIt last, OutputIt d_first,
const T & old_value, const T & new_value ) ;

std::replace_copy
template < class ExecutionPolicy, class InputIt, class OutputIt,

class UnaryPred, class T >
OutputIt replace_copy_if ( ExecutionPolicy && policy,
InputIt first, InputIt last, OutputIt d_first,
UnaryPred p, const T & new_value ) ;

std::replace_copy_if
template < class ExecutionPolicy, class ForwardIt1, class ForwardIt2 >

ForwardIt2 swap_ranges ( ExecutionPolicy && policy,
ForwardIt1 first1, ForwardIt1 last1,
ForwardIt2 first2 ) ;

std::swap_ranges
template < class ExecutionPolicy, class BidirIt >

void reverse ( ExecutionPolicy && policy, BidirIt first, BidirIt last ) ;

std::reverse
template < class ExecutionPolicy, class BidirIt, class OutputIt >

OutputIt reverse_copy ( ExecutionPolicy && policy,
BidirIt first, BidirIt last, OutputIt d_first ) ;

std::reverse_copy
template < class ExecutionPolicy, class ForwardIt >

ForwardIt rotate ( ExecutionPolicy && policy,
ForwardIt first, ForwardIt n_first, ForwardIt last ) ;

std::rotate
template < class ExecutionPolicy, class ForwardIt, class OutputIt >

OutputIt rotate_copy ( ExecutionPolicy && policy,
ForwardIt first, ForwardIt n_first, ForwardIt last,
OutputIt d_first ) ;

std::rotate_copy
template < class ExecutionPolicy, class ForwardIt >

ForwardIt unique ( ExecutionPolicy && policy,
ForwardIt first, ForwardIt last ) ;

template < class ExecutionPolicy, class ForwardIt, class BinaryPred >
ForwardIt unique ( ExecutionPolicy && policy,
ForwardIt first, ForwardIt last, BinaryPred p ) ;

std::unique
template < class ExecutionPolicy, class InputIt, class OutputIt >

OutputIt unique_copy ( ExecutionPolicy && policy,
InputIt first, InputIt last,
OutputIt d_first ) ;

template < class ExecutionPolicy, class InputIt,
class OutputIt, class BinaryPred >
OutputIt unique_copy ( ExecutionPolicy && policy,
InputIt first, InputIt last,
OutputIt d_first, BinaryPred p ) ;

std::unique_copy
Операции разделения
Параллелизованный алгоритм Существующий алгоритм
template < class ExecutionPolicy, class InputIt, class UnaryPred >

bool is_partitioned ( ExecutionPolicy && policy,
InputIt first, InputIt last, UnaryPred p ) ;

std::is_partitioned
template < class ExecutionPolicy, class ForwardIt, class UnaryPred >

ForwardIt partition ( ExecutionPolicy && policy,
ForwardIt first, ForwardIt last, UnaryPred p ) ;

std::partition
template < class ExecutionPolicy, class InputIt, class OutputIt1,

class OutputIt2, class UnaryPred >
std:: pair < OutputIt1, OutputIt2 >
partition_copy ( ExecutionPolicy && policy,
InputIt first, InputIt last,
OutputIt1 d_first_true, OutputIt2 d_first_false,
UnaryPred p ) ;

std::partition_copy
template < class ExecutionPolicy, class BidirIt, class UnaryPred >

BidirIt stable_partition ( ExecutionPolicy && policy,
BidirIt first, BidirIt last, UnaryPred p ) ;

std::stable_partition
Операции сортировки
Параллелизованный алгоритм Существующий алгоритм
template < class ExecutionPolicy, class ForwardIt >

bool is_sorted ( ExecutionPolicy && policy,
ForwardIt first, ForwardIt last ) ;

template < class ExecutionPolicy, class ForwardIt, class Compare >
bool is_sorted ( ExecutionPolicy && policy,
ForwardIt first, ForwardIt last, Compare cmp ) ;

std::is_sorted
template < class ExecutionPolicy, class ForwardIt >

ForwardIt is_sorted_until ( ExecutionPolicy && policy,
ForwardIt first, ForwardIt last ) ;

template < class ExecutionPolicy, class ForwardIt, class Compare >
ForwardIt is_sorted_until ( ExecutionPolicy && policy,
ForwardIt first, ForwardIt last,
Compare cmp ) ;

std::is_sorted_until
template < class ExecutionPolicy, class RandomIt >

void sort ( ExecutionPolicy && policy, RandomIt first, RandomIt last ) ;

template < class ExecutionPolicy, class RandomIt, class Compare >
void sort ( ExecutionPolicy && policy,
RandomIt first, RandomIt last, Compare cmp ) ;

std::sort
template < class ExecutionPolicy, class RandomIt >

void partial_sort ( ExecutionPolicy && policy,
RandomIt first, RandomIt middle, RandomIt last ) ;

template < class ExecutionPolicy, class RandomIt, class Compare >
void partial_sort ( ExecutionPolicy && policy,
RandomIt first, RandomIt middle, RandomIt last,
Compare cmp ) ;

std::partial_sort
template < class ExecutionPolicy, class InputIt, class RandomIt >

RandomIt partial_sort_copy ( ExecutionPolicy && policy,
InputIt first, InputIt last,
RandomIt d_first, RandomIt d_last ) ;

template < class ExecutionPolicy, class InputIt,
class RandomIt, class Compare >
RandomIt partial_sort_copy ( ExecutionPolicy && policy,
InputIt first, InputIt last,
RandomIt d_first, RandomIt d_last,
Compare cmp ) ;

std::partial_sort_copy
template < class ExecutionPolicy, class RandomIt >

void stable_sort ( ExecutionPolicy && policy,
RandomIt first, RandomIt last ) ;

template < class ExecutionPolicy, class RandomIt, class Compare >
void stable_sort ( ExecutionPolicy && policy,
RandomIt first, RandomIt last, Compare cmp ) ;

std::stable_sort
template < class ExecutionPolicy, class RandomIt >

void nth_element ( ExecutionPolicy && policy,
RandomIt first, RandomIt nth, RandomIt last ) ;

template < class ExecutionPolicy, class RandomIt, class Compare >
void nth_element ( ExecutionPolicy && policy,
RandomIt first, RandomIt nth, RandomIt last,
Compare cmp ) ;

std::nth_element
Операции с множествами (над отсортированными диапазонами)
Параллелизованный алгоритм Существующий алгоритм
template < class ExecutionPolicy, class InputIt1,

class InputIt2, class OutputIt >
OutputIt merge ( ExecutionPolicy && policy,
InputIt1 first1, InputIt1 last1,
InputIt2 first2, InputIt2 last2,
OutputIt d_first ) ;

template < class ExecutionPolicy, class InputIt1, class InputIt2,
class OutputIt, class Compare >
OutputIt merge ( ExecutionPolicy && policy,
InputIt1 first1, InputIt1 last1,
InputIt2 first2, InputIt2 last2,
OutputIt d_first, Compare cmp ) ;

std::merge
template < class ExecutionPolicy, class BidirIt >

void inplace_merge ( ExecutionPolicy && policy,
BidirIt first, BidirIt middle, BidirIt last ) ;

template < class ExecutionPolicy, class BidirIt, class Compare >
void inplace_merge ( ExecutionPolicy && policy,
BidirIt first, BidirIt middle, BidirIt last,
Compare cmp ) ;

std::inplace_merge
template < class ExecutionPolicy, class InputIt1, class InputIt2 >

bool includes ( ExecutionPolicy && policy,
InputIt1 first1, InputIt1 last1,
InputIt2 first2, InputIt2 last2 ) ;

template < class ExecutionPolicy, class InputIt1,
class InputIt2, class Compare >
bool includes ( ExecutionPolicy && policy,
InputIt1 first1, InputIt1 last1,
InputIt2 first2, InputIt2 last2, Compare cmp ) ;

std::includes
template < class ExecutionPolicy, class InputIt1,

class InputIt2, class OutputIt >
OutputIt set_difference ( ExecutionPolicy && policy,
InputIt1 first1, InputIt1 last1,
InputIt2 first2, InputIt2 last2,
OutputIt d_first ) ;

template < class ExecutionPolicy, class InputIt1, class InputIt2,
class OutputIt, class Compare >
OutputIt set_difference ( ExecutionPolicy && policy,
InputIt1 first1, InputIt1 last1,
InputIt2 first2, InputIt2 last2,
OutputIt d_first, Compare cmp ) ;

std::set_difference
template < class ExecutionPolicy, class InputIt1,

class InputIt2, class OutputIt >
OutputIt set_intersection ( ExecutionPolicy && policy,
InputIt1 first1, InputIt1 last1,
InputIt2 first2, InputIt2 last2,
OutputIt d_first ) ;

template < class ExecutionPolicy, class InputIt1, class InputIt2,
class OutputIt, class Compare >
OutputIt set_intersection ( ExecutionPolicy && policy,
InputIt1 first1, InputIt1 last1,
InputIt2 first2, InputIt2 last2,
OutputIt d_first, Compare cmp ) ;

std::set_intersection
template < class ExecutionPolicy, class InputIt1,

class InputIt2, class OutputIt >
OutputIt set_symmetric_difference ( ExecutionPolicy && policy,
InputIt1 first1, InputIt1 last1,
InputIt2 first2, InputIt2 last2,
OutputIt d_first ) ;

template < class ExecutionPolicy, class InputIt1, class InputIt2,
class OutputIt, class Compare >
OutputIt set_symmetric_difference ( ExecutionPolicy && policy,
InputIt1 first1, InputIt1 last1,
InputIt2 first2, InputIt2 last2,
OutputIt d_first, Compare cmp ) ;

std::set_symmetric_difference
template < class ExecutionPolicy, class InputIt1,

class InputIt2, class OutputIt >
OutputIt set_union ( ExecutionPolicy && policy,
InputIt1 first1, InputIt1 last1,
InputIt2 first2, InputIt2 last2,
OutputIt d_first ) ;

template < class ExecutionPolicy, class InputIt1, class InputIt2,
class OutputIt, class Compare >
OutputIt set_union ( ExecutionPolicy && policy,
InputIt1 first1, InputIt1 last1,
InputIt2 first2, InputIt2 last2,
OutputIt d_first, Compare cmp ) ;

std::set_union
Операции с кучей
Параллелизованный алгоритм Существующий алгоритм
template < class ExecutionPolicy, class RandomIt >

bool is_heap ( ExecutionPolicy && policy,
RandomIt first, RandomIt last ) ;

template < class ExecutionPolicy, class RandomIt, class Compare >
bool is_heap ( ExecutionPolicy && policy,
RandomIt first, RandomIt last, Compare cmp ) ;

std::is_heap
template < class ExecutionPolicy, class RandomIt >

RandomIt is_heap_until ( ExecutionPolicy && policy,
RandomIt first, RandomIt last ) ;

template < class ExecutionPolicy, class RandomIt, class Compare >
RandomIt is_heap_until ( ExecutionPolicy && policy,
RandomIt first, RandomIt last, Compare cmp ) ;

std::is_heap_until
Операции минимума/максимума
Параллелизованный алгоритм Существующий алгоритм
template < class ExecutionPolicy, class ForwardIt >

ForwardIt max_element ( ExecutionPolicy && policy,
ForwardIt first, ForwardIt last ) ;

template < class ExecutionPolicy, class ForwardIt, class Compare >
ForwardIt max_element ( ExecutionPolicy && policy,
ForwardIt first, ForwardIt last, Compare cmp ) ;

std::max_element
template < class ExecutionPolicy, class ForwardIt >

ForwardIt min_element ( ExecutionPolicy && policy,
ForwardIt first, ForwardIt last ) ;

template < class ExecutionPolicy, class ForwardIt, class Compare >
ForwardIt min_element ( ExecutionPolicy && policy,
ForwardIt first, ForwardIt last, Compare cmp ) ;

std::min_element
template < class ExecutionPolicy, class ForwardIt >

std:: pair < ForwardIt,ForwardIt >
minmax_element ( ExecutionPolicy && policy,
ForwardIt first, ForwardIt last ) ;

template < class ExecutionPolicy, class ForwardIt, class Compare >
std:: pair < ForwardIt,ForwardIt >
minmax_element ( ExecutionPolicy && policy,
ForwardIt first, ForwardIt last, Compare cmp ) ;

std::minmax_element
template < class ExecutionPolicy, class InputIt1, class InputIt2 >

bool lexicographical_compare ( ExecutionPolicy && policy,
InputIt1 first1, InputIt1 last1,
InputIt2 first2, InputIt2 last2 ) ;

template < class ExecutionPolicy, class InputIt1,
class InputIt2, class Compare >
bool lexicographical_compare ( ExecutionPolicy && policy,
InputIt1 first1, InputIt1 last1,
InputIt2 first2, InputIt2 last2,
Compare cmp ) ;

std::lexicographical_compare
Числовые операции
Параллелизованный алгоритм Существующий алгоритм
template < class ExecutionPolicy, class InputIt, class OutputIt >

OutputIt adjacent_difference ( ExecutionPolicy && policy,
InputIt first, InputIt last,
OutputIt d_first ) ;

template < class ExecutionPolicy, class InputIt,
class OutputIt, class BinaryOp >
OutputIt adjacent_difference ( ExecutionPolicy && policy,
InputIt first, InputIt last,
OutputIt d_first, BinaryOp op ) ;

std::adjacent_difference
template < class ExecutionPolicy, class InputIt1,

class InputIt2, class T >
T inner_product ( ExecutionPolicy && policy,
InputIt1 first1, InputIt1 last1, InputIt2 first2,
T value ) ;

template < class ExecutionPolicy, class InputIt1, class InputIt2,
class T, class BinaryOp1, class BinaryOp2 >
T inner_product ( ExecutionPolicy && policy,
InputIt1 first1, InputIt1 last1, InputIt2 first2,
T value, BinaryOp1 op1, BinaryOp2 op2 ) ;

std::inner_product
Операции с неинициализированной памятью
Параллелизованный алгоритм Существующий алгоритм
template < class ExecutionPolicy, class InputIt, class ForwardIt >

ForwardIt uninitialized_copy ( ExecutionPolicy && policy,
InputIt first, InputIt last,
ForwardIt d_first ) ;

std::uninitialized_copy
template < class ExecutionPolicy, class InputIt,

class Size, class ForwardIt >
ForwardIt uninitialized_copy_n ( ExecutionPolicy && policy,
InputIt first, Size count,
ForwardIt d_first ) ;

std::uninitialized_copy_n
template < class ExecutionPolicy, class ForwardIt, class T >

void uninitialized_fill ( ExecutionPolicy && policy,
ForwardIt first, ForwardIt last,
const T & value ) ;

std::uninitialized_fill
template < class ExecutionPolicy, class ForwardIt, class Size, class T >

ForwardIt uninitialized_fill_n ( ExecutionPolicy && policy,
ForwardIt first, Size count,
const T & value ) ;

std::uninitialized_fill_n