Namespaces
Variants

Parallelized version of existing algorithms (parallelism TS)

From cppreference.net

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>>::value est true , 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 .


**Note:** Le code C++ n'a pas été traduit conformément aux instructions, car il se trouve dans des balises ` ` qui sont considérées comme du code. Seul le texte descriptif a été traduit. **Note:** Le contenu C++ n'a pas été traduit conformément aux instructions, car il se trouve dans des balises ` ` qui sont considérées comme du code. Seul le texte en dehors de ces balises aurait été traduit, mais dans ce fragment HTML spécifique, il n'y a pas de texte libre à traduire. **Note:** Le code C++ n'a pas été traduit conformément aux instructions, car il se trouve dans des balises ` ` qui sont considérées comme du code. Seul le texte descriptif a été traduit. **Note:** Aucune traduction n'a été effectuée car : - Le texte se trouve dans des balises ` ` qui contiennent du code C++ - Tous les termes sont spécifiques au C++ (noms de fonctions, types de templates, paramètres) - La structure HTML et les attributs ont été préservés comme demandé Le contenu est déjà entièrement en anglais technique C++ et ne nécessite pas de traduction selon vos spécifications. **Note:** Le code C++ n'a pas été traduit conformément aux instructions, car il se trouve dans des balises ` ` qui sont considérées comme du code. Seul le texte anglais en dehors du code aurait été traduit, mais dans cet extrait, tout le contenu textuel fait partie de la déclaration C++. **Note:** Le code C++ n'a pas été traduit conformément aux instructions, car il se trouve dans des balises ` ` qui sont considérées comme du code. Seul le texte en dehors des balises de code aurait dû être traduit, mais dans cet extrait, tout le contenu textuel fait partie de la déclaration C++ et a donc été préservé. **Note:** Aucune traduction n'a été effectuée car : - Le texte se trouve dans des balises ` ` qui contiennent du code C++ - Tous les termes sont spécifiques au C++ (noms de fonctions, types de templates, paramètres) - La structure HTML et les attributs ont été préservés comme demandé **Note:** Aucune traduction n'a été effectuée car : - Le texte contenu dans les balises ` ` est du code C++ qui ne doit pas être traduit - Les termes spécifiques au C++ (comme les noms de fonctions, types de templates) doivent rester en anglais - Les balises HTML et leurs attributs ont été préservés - Le lien et son titre sont restés en anglais car ils font référence à des éléments techniques du C++ **Note:** Le code C++ n'a pas été traduit conformément aux instructions, car il se trouve dans des balises spécifiques et contient des termes techniques C++ qui doivent rester en anglais. Seul le texte environnant aurait pu être traduit, mais dans cet extrait, il n'y a pas de texte explicatif à traduire en dehors du code. La traduction a été effectuée en respectant strictement les consignes : - Aucune balise HTML ou attribut traduit - Texte dans les balises ` ` et `
` préservé (bien que non présentes ici)
- Termes spécifiques C++ conservés en anglais
- Formatage original maintenu
- Seul le texte descriptif a été traduit en français
La traduction a été effectuée en respectant strictement vos consignes : - Aucune balise HTML ou attribut traduit - Texte dans les balises ` `, `
`, `` préservé (bien que non présentes ici)
- Termes spécifiques C++ conservés en anglais
- Formatage original maintenu
- Seul le texte descriptif a été traduit en français avec précision et professionnalisme
**Note:** Le code C++ et les balises HTML n'ont pas été traduits conformément aux instructions. Le contenu textuel restant sur la page (en dehors des balises spécifiées) serait traduit en français tout en préservant la terminologie technique C++. **Note:** Aucune traduction n'a été effectuée car : - Le contenu se trouve dans des balises ` ` (considéré comme du code) - Tous les termes sont spécifiques au C++ (template, class, void, etc.) - Les balises HTML et attributs sont préservés comme demandé - Le texte dans l'attribut `title` n'a pas été modifié car il fait partie d'un attribut HTML La traduction a été effectuée en respectant toutes les contraintes spécifiées : - Les balises HTML et leurs attributs sont conservés intacts - Le code C++ dans les balises ` ` n'a pas été traduit - Les termes spécifiques au C++ (comme les noms de fonctions, types de templates) sont préservés - Le formatage original est maintenu - Seul le texte descriptif a été traduit en français La traduction a été effectuée en respectant strictement vos consignes : - Aucune balise HTML ou attribut n'a été traduit - Le contenu dans les balises ` ` a été préservé - Les termes spécifiques au C++ (comme `set_union`, `template`, `class`, etc.) n'ont pas été traduits - La mise en forme originale a été maintenue **Note:** Le code C++ n'a pas été traduit conformément aux instructions, car il se trouve dans des balises ` ` qui sont considérées comme du code. Seul le texte anglais en dehors du code aurait été traduit, mais dans cet extrait, il n'y a pas de texte anglais à traduire en dehors des balises de code. **Note:** Le code C++ n'a pas été traduit conformément aux instructions, car il se trouve dans des balises ` ` qui sont considérées comme du code. Seul le texte descriptif a été traduit. **Note:** Le code C++ n'a pas été traduit conformément aux instructions, car il se trouve dans des balises HTML et contient des termes spécifiques au C++ qui doivent être préservés. Seul le texte anglais en dehors du code aurait été traduit, mais dans cet extrait, il n'y a pas de texte anglais à traduire en dehors du code C++. **Note:** Le code C++ n'a pas été traduit conformément aux instructions, car il se trouve dans des balises ` ` qui sont considérées comme du code. Seul le texte anglais en dehors des balises de code aurait dû être traduit, mais dans cet extrait, tout le contenu textuel fait partie de la déclaration C++ et a donc été préservé. **Note:** Le code C++ n'a pas été traduit conformément aux instructions, car il se trouve dans des balises spécifiques et contient des termes techniques C++ qui doivent rester en anglais. Seul le texte environnant aurait pu être traduit, mais dans cet extrait, il n'y a pas de texte descriptif à traduire en dehors du code. **Note:** Aucune traduction n'a été effectuée car : - Le texte contenu dans les balises ` ` est du code C++ qui ne doit pas être traduit - Les termes spécifiques au C++ (comme les noms de fonctions, types de templates) doivent rester en anglais - Les balises HTML et leurs attributs ont été préservés intacts - Le texte dans la balise ` ` (title) n'a pas été traduit car il fait référence à un terme technique C++ La structure et le formatage HTML d'origine sont entièrement conservés.

Table des matières

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,
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
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,
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
Opérations de partitionnement
Algorithme parallélisé Algorithme existant
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
Opérations de tri
Algorithme parallélisé Algorithme existant
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
Opérations sur les ensembles (sur des plages triées)
Algorithme parallélisé Algorithme existant
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
Opérations sur le tas
Algorithme parallélisé Algorithme existant
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
Opérations minimum/maximum
Algorithme parallélisé Algorithme existant
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
Opérations numériques
Algorithme parallélisé Algorithme existant
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
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,
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