Parallelized version of existing algorithms (parallelism TS)
Les Extensions C++ pour le Parallelism TS fournissent des versions parallélisées des 69 algorithmes existants suivants. Chacun des algorithmes parallélisés suivants
-
est déclaré dans l'espace de noms
std::experimental::parallel, -
ne participe pas à la résolution de surcharge sauf si
is_execution_policy<std::decay_t<ExecutionPolicy>>::valueesttrue, et - a la même sémantique que l'algorithme correspondant existant dans la bibliothèque standard C++, sauf indication contraire sur la page des algorithmes parallèles .
Opérations de séquence non modifiantes |
|
| Algorithme parallélisé | Algorithme existant |
|
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 |
Opérations de modification de séquence |
|
| Algorithme parallélisé | Algorithme existant |
|
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 |
Opérations de partitionnement |
|
| Algorithme parallélisé | Algorithme existant |
|
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 |
Opérations de tri |
|
| Algorithme parallélisé | Algorithme existant |
|
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 |
Opérations sur les ensembles (sur des plages triées) |
|
| Algorithme parallélisé | Algorithme existant |
|
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 |
Opérations sur le tas |
|
| Algorithme parallélisé | Algorithme existant |
|
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 |
Opérations minimum/maximum |
|
| Algorithme parallélisé | Algorithme existant |
|
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 |
Opérations numériques |
|
| Algorithme parallélisé | Algorithme existant |
|
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 |
Opérations sur la mémoire non initialisée |
|
| Algorithme parallélisé | Algorithme existant |
|
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 |