Parallelized version of existing algorithms (parallelism TS)
C++并行性TS扩展提供了以下69个现有算法的并行化版本。每个并行化算法
-
声明于
std::experimental::parallel命名空间中, -
除非
is_execution_policy<std::decay_t<ExecutionPolicy>>::value为true,否则不参与重载决议,且 - 与 C++ 标准库中现有对应算法具有相同语义,除非在 并行算法 页面中另有说明。
Non-modifying sequence operations |
||
| Parallelized algorithm | Existing algorithm | |
|
template
<
class
ExecutionPolicy,
class
InputIt,
class
UnaryPred
>
bool
all_of
(
ExecutionPolicy
&&
policy, InputIt first, InputIt last,
|
std::all_of | |
|
template
<
class
ExecutionPolicy,
class
InputIt,
class
UnaryPred
>
bool
any_of
(
ExecutionPolicy
&&
policy, InputIt first, InputIt last,
|
std::any_of | |
|
template
<
class
ExecutionPolicy,
class
InputIt,
class
UnaryPred
>
bool
none_of
(
ExecutionPolicy
&&
policy, InputIt first, InputIt last,
|
std::none_of | |
|
template
<
class
ExecutionPolicy,
class
InputIt,
class
T
>
typename
iterator_traits
<
InputIt
>
::
difference_type
|
std::count | |
|
template
<
class
ExecutionPolicy,
class
InputIt,
class
UnaryPred
>
typename
iterator_traits
<
InputIt
>
::
difference_type
|
std::count_if | |
|
template
<
class
ExecutionPolicy,
class
InputIt1,
class
InputIt2
>
std::
pair
<
InputIt1,InputIt2
>
|
std::mismatch | |
|
template
<
class
ExecutionPolicy,
class
InputIt1,
class
InputIt2
>
bool
equal
(
ExecutionPolicy
&&
policy,
|
std::equal | |
|
template
<
class
ExecutionPolicy,
class
InputIt,
class
T
>
InputIt find
(
ExecutionPolicy
&&
policy, InputIt first, InputIt last,
|
std::find | |
|
template
<
class
ExecutionPolicy,
class
InputIt,
class
UnaryPred
>
InputIt find_if
(
ExecutionPolicy
&&
policy, InputIt first, InputIt last,
|
std::find_if | |
|
template
<
class
ExecutionPolicy,
class
InputIt,
class
UnaryPred
>
InputIt find_if_not
(
ExecutionPolicy
&&
policy,
|
std::find_if_not | |
|
template
<
class
ExecutionPolicy,
class
ForwardIt1,
class
ForwardIt2
>
ForwardIt1 find_end
(
ExecutionPolicy
&&
policy,
|
std::find_end | |
|
template
<
class
ExecutionPolicy,
class
InputIt,
class
ForwardIt
>
InputIt find_first_of
(
ExecutionPolicy
&&
policy,
|
std::find_first_of | |
|
template
<
class
ExecutionPolicy,
class
ForwardIt
>
ForwardIt adjacent_find
(
ExecutionPolicy
&&
policy,
|
std::adjacent_find | |
|
template
<
class
ExecutionPolicy,
class
ForwardIt1,
class
ForwardIt2
>
ForwardIt1 search
(
ExecutionPolicy
&&
policy,
|
std::search | |
|
template
<
class
ExecutionPolicy,
class
ForwardIt,
class
Size,
class
T
>
ForwardIt search_n
(
ExecutionPolicy
&&
policy,
|
std::search_n | |
Modifying sequence operations |
||
| Parallelized algorithm | Existing algorithm | |
|
template
<
class
ExecutionPolicy,
class
InputIt,
class
OutputIt
>
OutputIt copy
(
ExecutionPolicy
&&
policy, InputIt first, InputIt last,
|
std::copy | |
|
template
<
class
ExecutionPolicy,
class
InputIt,
class
OutputIt,
class
UnaryPred
>
|
std::copy_if | |
|
template
<
class
ExecutionPolicy,
class
InputIt,
class
Size,
class
OutputIt
>
|
std::copy_n | |
|
template
<
class
ExecutionPolicy,
class
InputIt,
class
OutputIt
>
OutputIt move
(
ExecutionPolicy
&&
policy, InputIt first, InputIt last,
|
std::move | |
|
template
<
class
ExecutionPolicy,
class
ForwardIt,
class
T
>
void
fill
(
ExecutionPolicy
&&
policy, ForwardIt first, ForwardIt last,
|
std::fill | |
|
template
<
class
ExecutionPolicy,
class
OutputIt,
class
Size,
class
T
>
OutputIt fill_n
(
ExecutionPolicy
&&
policy, OutputIt first, Size count,
|
std::fill_n | |
|
template
<
class
ExecutionPolicy,
class
InputIt,
class
OutputIt,
class
UnaryOp
>
|
std::transform | |
|
template
<
class
ExecutionPolicy,
class
ForwardIt,
class
Generator
>
void
generate
(
ExecutionPolicy
&&
policy, ForwardIt first, ForwardIt last,
|
std::generate | |
|
template
<
class
ExecutionPolicy,
class
OutputIt,
class
Size,
class
Generator
>
|
std::generate_n | |
|
template
<
class
ExecutionPolicy,
class
ForwardIt,
class
T
>
ForwardIt remove
(
ExecutionPolicy
&&
policy,
|
std::remove | |
|
template
<
class
ExecutionPolicy,
class
ForwardIt,
class
UnaryPred
>
ForwardIt remove_if
(
ExecutionPolicy
&&
policy,
|
std::remove_if | |
|
template
<
class
ExecutionPolicy,
class
InputIt,
class
OutputIt,
class
T
>
OutputIt remove_copy
(
ExecutionPolicy
&&
policy,
|
std::remove_copy | |
|
template
<
class
ExecutionPolicy,
class
InputIt,
class
OutputIt,
class
UnaryPred
>
|
std::remove_copy_if | |
|
template
<
class
ExecutionPolicy,
class
ForwardIt,
class
T
>
void
replace
(
ExecutionPolicy
&&
policy,
|
std::replace | |
|
template
<
class
ExecutionPolicy,
class
ForwardIt,
class
UnaryPred,
class
T
>
|
std::replace_if | |
|
template
<
class
ExecutionPolicy,
class
InputIt,
class
OutputIt,
class
T
>
OutputIt replace_copy
(
ExecutionPolicy
&&
policy,
|
std::replace_copy | |
|
template
<
class
ExecutionPolicy,
class
InputIt,
class
OutputIt,
class
UnaryPred,
class
T
>
|
std::replace_copy_if | |
|
template
<
class
ExecutionPolicy,
class
ForwardIt1,
class
ForwardIt2
>
ForwardIt2 swap_ranges
(
ExecutionPolicy
&&
policy,
|
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,
|
std::reverse_copy | |
|
template
<
class
ExecutionPolicy,
class
ForwardIt
>
ForwardIt rotate
(
ExecutionPolicy
&&
policy,
|
std::rotate | |
|
template
<
class
ExecutionPolicy,
class
ForwardIt,
class
OutputIt
>
OutputIt rotate_copy
(
ExecutionPolicy
&&
policy,
|
std::rotate_copy | |
|
template
<
class
ExecutionPolicy,
class
ForwardIt
>
ForwardIt unique
(
ExecutionPolicy
&&
policy,
|
std::unique | |
|
template
<
class
ExecutionPolicy,
class
InputIt,
class
OutputIt
>
OutputIt unique_copy
(
ExecutionPolicy
&&
policy,
|
std::unique_copy | |
Partitioning operations |
||
| Parallelized algorithm | Existing algorithm | |
|
template
<
class
ExecutionPolicy,
class
InputIt,
class
UnaryPred
>
bool
is_partitioned
(
ExecutionPolicy
&&
policy,
|
std::is_partitioned | |
|
template
<
class
ExecutionPolicy,
class
ForwardIt,
class
UnaryPred
>
ForwardIt partition
(
ExecutionPolicy
&&
policy,
|
std::partition | |
|
template
<
class
ExecutionPolicy,
class
InputIt,
class
OutputIt1,
class
OutputIt2,
class
UnaryPred
>
|
std::partition_copy | |
|
template
<
class
ExecutionPolicy,
class
BidirIt,
class
UnaryPred
>
BidirIt stable_partition
(
ExecutionPolicy
&&
policy,
|
std::stable_partition | |
Sorting operations |
||
| Parallelized algorithm | Existing algorithm | |
|
template
<
class
ExecutionPolicy,
class
ForwardIt
>
bool
is_sorted
(
ExecutionPolicy
&&
policy,
|
std::is_sorted | |
|
template
<
class
ExecutionPolicy,
class
ForwardIt
>
ForwardIt is_sorted_until
(
ExecutionPolicy
&&
policy,
|
std::is_sorted_until | |
|
template
<
class
ExecutionPolicy,
class
RandomIt
>
void
sort
(
ExecutionPolicy
&&
policy, RandomIt first, RandomIt last
)
;
|
std::sort | |
|
template
<
class
ExecutionPolicy,
class
RandomIt
>
void
partial_sort
(
ExecutionPolicy
&&
policy,
|
std::partial_sort | |
|
template
<
class
ExecutionPolicy,
class
InputIt,
class
RandomIt
>
RandomIt partial_sort_copy
(
ExecutionPolicy
&&
policy,
|
std::partial_sort_copy | |
|
template
<
class
ExecutionPolicy,
class
RandomIt
>
void
stable_sort
(
ExecutionPolicy
&&
policy,
|
std::stable_sort | |
|
template
<
class
ExecutionPolicy,
class
RandomIt
>
void
nth_element
(
ExecutionPolicy
&&
policy,
|
std::nth_element | |
Set operations (on sorted ranges) |
||
| Parallelized algorithm | Existing algorithm | |
|
template
<
class
ExecutionPolicy,
class
InputIt1,
class
InputIt2,
class
OutputIt
>
|
std::merge | |
|
template
<
class
ExecutionPolicy,
class
BidirIt
>
void
inplace_merge
(
ExecutionPolicy
&&
policy,
|
std::inplace_merge | |
|
template
<
class
ExecutionPolicy,
class
InputIt1,
class
InputIt2
>
bool
includes
(
ExecutionPolicy
&&
policy,
|
std::includes | |
|
template
<
class
ExecutionPolicy,
class
InputIt1,
class
InputIt2,
class
OutputIt
>
|
std::set_difference | |
|
template
<
class
ExecutionPolicy,
class
InputIt1,
class
InputIt2,
class
OutputIt
>
|
std::set_intersection | |
|
template
<
class
ExecutionPolicy,
class
InputIt1,
class
InputIt2,
class
OutputIt
>
|
std::set_symmetric_difference | |
|
template
<
class
ExecutionPolicy,
class
InputIt1,
class
InputIt2,
class
OutputIt
>
|
std::set_union | |
Heap operations |
||
| Parallelized algorithm | Existing algorithm | |
|
template
<
class
ExecutionPolicy,
class
RandomIt
>
bool
is_heap
(
ExecutionPolicy
&&
policy,
|
std::is_heap | |
|
template
<
class
ExecutionPolicy,
class
RandomIt
>
RandomIt is_heap_until
(
ExecutionPolicy
&&
policy,
|
std::is_heap_until | |
Minimum/maximum operations |
||
| Parallelized algorithm | Existing algorithm | |
|
template
<
class
ExecutionPolicy,
class
ForwardIt
>
ForwardIt max_element
(
ExecutionPolicy
&&
policy,
|
std::max_element | |
|
template
<
class
ExecutionPolicy,
class
ForwardIt
>
ForwardIt min_element
(
ExecutionPolicy
&&
policy,
|
std::min_element | |
|
template
<
class
ExecutionPolicy,
class
ForwardIt
>
std::
pair
<
ForwardIt,ForwardIt
>
|
std::minmax_element | |
|
template
<
class
ExecutionPolicy,
class
InputIt1,
class
InputIt2
>
bool
lexicographical_compare
(
ExecutionPolicy
&&
policy,
|
std::lexicographical_compare | |
Numeric operations |
||
| Parallelized algorithm | Existing algorithm | |
|
template
<
class
ExecutionPolicy,
class
InputIt,
class
OutputIt
>
OutputIt adjacent_difference
(
ExecutionPolicy
&&
policy,
|
std::adjacent_difference | |
|
template
<
class
ExecutionPolicy,
class
InputIt1,
class
InputIt2,
class
T
>
|
std::inner_product | |
Operations on uninitialized memory |
||
| Parallelized algorithm | Existing algorithm | |
|
template
<
class
ExecutionPolicy,
class
InputIt,
class
ForwardIt
>
ForwardIt uninitialized_copy
(
ExecutionPolicy
&&
policy,
|
std::uninitialized_copy | |
|
template
<
class
ExecutionPolicy,
class
InputIt,
class
Size,
class
ForwardIt
>
|
std::uninitialized_copy_n | |
|
template
<
class
ExecutionPolicy,
class
ForwardIt,
class
T
>
void
uninitialized_fill
(
ExecutionPolicy
&&
policy,
|
std::uninitialized_fill | |
|
template
<
class
ExecutionPolicy,
class
ForwardIt,
class
Size,
class
T
>
ForwardIt uninitialized_fill_n
(
ExecutionPolicy
&&
policy,
|
std::uninitialized_fill_n | |