<algorithm>
Définit les fonctions de modèle de conteneur de (STL) de modèles Standard qui effectuent des algorithmes.
namespace std {
template<class InputIterator, class Predicate>
bool all_of (
InputIterator _First,
InputIterator _Last,
Predicate _Pred
);
template<class InputIterator, class Predicate>
bool any_of (
InputIterator _First,
InputIterator _Last,
Predicate _Pred
);
template<class InputIterator, class Predicate>
bool none_of (
InputIterator _First,
InputIterator _Last,
Predicate _Pred
);
template<class InputIterator, class Function>
Fn1 for_each (
InputIterator _First,
InputIterator _Last,
Function _Func
);
template<class InputIterator, class Type>
InputIterator find (
InputIterator _First,
InputIterator _Last,
const Type& _Val
);
template<class InputIterator, class Predicate>
InputIterator find_if (
InputIterator _First,
InputIterator _Last,
Predicate _Pred
);
template<class InputIterator, class Predicate>
InputIterator find_if_not (
InputIterator _First,
InputIterator _Last,
Predicate _Pred
);
template<class ForwardIterator1, class ForwardIterator2>
ForwardIterator1 find_end (
ForwardIterator1 _First1,
ForwardIterator1 _Last1,
ForwardIterator2 _First2,
ForwardIterator2 _Last2
);
template<class ForwardIterator1, class ForwardIterator2,
class Predicate>
ForwardIterator1 find_end (
ForwardIterator1 _First1,
ForwardIterator1 _Last1,
ForwardIterator2 _First2,
ForwardIterator2 _Last2,
Predicate _Pred
);
template<class InputIterator, class ForwardIterator>
InputIterator1 find_first_of (
InputIterator _First1,
InputIterator _Last1,
ForwardIterator _First2,
ForwardIterator _Last2
);
template<class InputIterator, class ForwardIterator,
class Predicate>
InputIterator1 find_first_of (
InputIterator _First1,
InputIterator _Last1,
ForwardIterator _First2,
ForwardIterator _Last2,
Predicate _Pred
);
template<class ForwardIterator>
ForwardIterator adjacent_find (
ForwardIterator _First,
ForwardIterator _Last
);
template<class ForwardIterator, class Predicate>
ForwardIterator adjacent_find (
ForwardIterator _First,
ForwardIterator _Last,
Predicate _Pred
);
template<class InputIterator, class Type>
typename iterator_traits<InputIterator>::difference_type
count (
InputIterator _First,
InputIterator _Last,
const Type& _Val
);
template<class InputIterator, class Predicate>
typename iterator_traits<InputIterator>::difference_type
count_if (
InputIterator _First,
InputIterator _Last,
Predicate _Pred
);
template<class InputIterator1, class InputIterator2>
pair<InputIterator1, InputIterator2>
mismatch (
InputIterator1 _First1,
InputIterator1 _Last1,
InputIterator2 _First2
);
template<class InputIterator1, class InputIterator2, class Predicate>
pair<InputIterator1, InputIterator2>
mismatch (
InputIterator1 _First1,
InputIterator1 _Last1,
InputIterator2 _First2,
Predicate _Pred
);
template<class InputIterator1, class InputIterator2>
bool equal (
InputIterator1 _First1,
InputIterator1 _Last1,
InputIterator2 _First2
);
template<class InputIterator1, class InputIterator2, class Predicate>
bool equal (
InputIterator1 _First1,
InputIterator1 _Last1,
InputIterator2 _First2,
Predicate _Pred
);
template<class ForwardIterator1, class ForwardIterator2>
ForwardIterator1 search (
ForwardIterator1 _First1,
ForwardIterator1 _Last1,
ForwardIterator2 _First2,
ForwardIterator2 _Last2
);
template<class ForwardIterator1, class ForwardIterator2,
class Predicate>
ForwardIterator1 search (
ForwardIterator1 _First1,
ForwardIterator1 _Last1,
ForwardIterator2 _First2,
ForwardIterator2 _Last2,
Predicate _Pred
);
template<class ForwardIterator, class Size, class Type>
ForwardIterator search_n (
ForwardIterator _First,
ForwardIterator _Last,
Size _Count,
const Type& _Val
);
template<class ForwardIterator, class Size, class Type,
class Predicate>
ForwardIterator search_n (
ForwardIterator _First,
ForwardIterator _Last,
Size _Count,
const Type& _Val,
Predicate _Pred
);
Notes
Les algorithmes STL sont génériques car ils peuvent traiter diverses structures de données.Les structures de données qu'ils peuvent traiter incluent pas uniquement les classes de conteneurs STL telles que vector et list, mais également les structures de données et les tableaux définis par programme des éléments qui répondent aux conditions d'un algorithme donné.Les algorithmes STL atteignent ce niveau de la généralité en accédant et en parcourant les éléments d'un conteneur indirectement via des itérateurs.
Les algorithmes STL fonctionnent sur des plages d'itérateur qui sont en général spécifiées par leurs positions de début ou de fin.Les plages visés doivent être valides dans le sens que tous les pointeurs dans des plages doivent être deréférençables et, dans les séquences de chaque plage, la dernière position doit être accessible dès le début par l'augmentation.
Les algorithmes STL étendent les actions prises en charge par les opérations et les fonctions membres de chaque conteneur STL et permettent l', par exemple, avec différents types d'objets conteneurs en même temps.Deux suffixes ont été utilisés pour fournir des informations sur la finalité des algorithmes.
Si le suffixe indique que l'algorithme est utilisé avec la fonction objets l'opération sur les valeurs des éléments plutôt que sur les valeurs des éléments eux-mêmes.L'algorithme d' find_if rechercher les éléments dont les valeurs sont conformes au critère spécifié par un objet de fonction, et l'algorithme d' find recherche une valeur particulière.
Le suffixe _copy indique que l'algorithme manipule non seulement les valeurs des éléments mais copie également les valeurs modifiées dans une plage de destination.L'algorithme d' reverse inverse l'ordre des éléments dans une plage, et l'algorithme d' reverse_copy copie également le résultat dans une plage de destination.
Les algorithmes STL sont souvent classés en groupes qui indiquent un élément sur leur objectif ou spécifications.Ceux-ci incluent modifier les algorithmes qui modifient la valeur des éléments par rapport aux algorithmes nonmodifying qui ne font pas.Faisant muter les algorithmes modifiez l'ordre des éléments, mais pas les valeurs de leurs éléments.Supprimer des algorithmes peut éliminer les éléments d'une plage ou d'une copie d'un intervalle.Les algorithmes de commande tri de nouveau les éléments dans une plage dans différentes manières et les algorithmes triés de plage agissent uniquement sur les algorithmes dont les éléments ont été triées d'une façon particulière.
Les algorithmes numériques STL fournis pour traiter numérique ont leur propre fichier d'en-tête <numeric>, et fonctionnent les objets et les adaptateurs sont définis dans les objets de fonction de <functional> d'en-tête qui les valeurs booléennes de retour sont appelés attributs.l'attribut binaire par défaut est la comparaison operator<.En général les éléments qui est dimensionné le besoin d'être moins que comparable afin que, avec deux éléments quelconques, il puisse déterminer l'un ou l'autre qu'ils sont équivalents (dans le sens que ni l'un ni l'autre n'est inférieure à l'autre) ou qu'un est inférieure à l'autre.Cela provoque le classement entre des éléments d'inégalité.
Fonctions
Recherche deux éléments adjacents qui sont égales ou remplissent une condition spécifiée. |
|
Retourne true lorsqu'une condition est présente à chaque élément de l'intervalle donné. |
|
Retourne true lorsqu'une condition est présente au moins une fois dans l'intervalle spécifié d'éléments. |
|
Les tests si un élément dans une plage trié qui est égale à une valeur spécifiée ou qui est équivalent à ce dernier dans une certaine mesure spécifié par un attribut binaire. |
|
Assigne les valeurs des éléments d'une plage source à une plage de destination, itérant au sein de la séquence source d'éléments et leur assigner de nouvelles positions dans une direction en avant. |
|
Assigne les valeurs des éléments d'une plage source à une plage de destination, itérant au sein de la séquence source d'éléments et leur assigner de nouvelles positions dans une direction descendante. |
|
Copiez tous les éléments dans une plage donnée qui testent true d'un état spécifié |
|
Copie un nombre spécifié d'éléments. |
|
Retourne le nombre d'éléments dans une plage dont les valeurs correspondent à une valeur spécifiée. |
|
Retourne le nombre d'éléments dans une plage dont les valeurs correspondent à une condition spécifiée. |
|
Compare l'élément de deux plages par l'élément d'égalité ou l'équivalence dans une certaine mesure spécifiée par un attribut binaire. |
|
Recherche une paire de positions dans une plage dimensionné, le premier inférieure ou l'équivalent à la position d'un élément spécifié et le deuxième supérieur à la position de l'élément, où le sens de l'équivalence ou de classer utilisé pour générer des positions dans la séquence peut être spécifié par un attribut binaire. |
|
Assigne la même nouvelle valeur à chaque élément dans une plage spécifiée. |
|
Assigne une valeur à un nombre spécifié d'éléments dans une plage à partir d'un élément particulier. |
|
Recherche la position de la première occurrence d'un élément dans une plage qui a une valeur spécifiée. |
|
Le recherche dans une plage pour le dernier sous-séquence identique à une séquence spécifiée ou qui est équivalent dans une certaine mesure spécifié par un attribut binaire. |
|
Recherche la première occurrence de laquelle plusieurs valeurs dans une fourchette objectif ou pour la première occurrence de laquelle plusieurs éléments qui sont équivalents dans une certaine mesure spécifiés par un attribut binaire à un ensemble spécifié d'éléments. |
|
Recherche la position de la première occurrence d'un élément dans une plage qui remplit une condition spécifiée. |
|
Retourne le premier élément dans l'intervalle désigné qui ne remplit pas de condition. |
|
Applique un objet spécifié de fonction à chaque élément d'une commande en avant dans une plage et retourne l'objet de fonction. |
|
Assigne des valeurs générées par un objet de fonction à chaque élément d'un intervalle. |
|
Assigne des valeurs générées par un objet de fonction à un nombre spécifié d'éléments est une plage et retourne à la position une au delà de la dernière valeur assignée. |
|
Teste si une plage trié contient tous les éléments contenus dans un deuxième intervalle trié, où le classement ou le critère d'équivalence entre les éléments peut être spécifié par un attribut binaire. |
|
Combine les éléments de deux plages triés consécutifs dans une plage trié unique, où le critère de classement peut être spécifié par un attribut binaire. |
|
Retourne true si les éléments de la plage spécifiée forment un tas. |
|
Retourne true si la plage spécifiée forme un tas jusqu ' à le dernier élément. |
|
Retourne true si tous les éléments de la plage donnée qui testent true pour un composant proviennent avant tous les éléments qui testent false. |
|
Retourne true si les éléments de l'intervalle spécifié dans sont triées. |
|
Retourne true si les éléments de l'intervalle spécifié dans sont triées. |
|
Les échanges deux valeurs sont rapportés par une paire d'itérateurs spécifiés. |
|
Compare l'élément par élément entre deux séquences pour déterminer qui est moins de deux. |
|
Recherche la position du premier élément dans une plage dimensionné avec une valeur supérieure ou l'équivalent à une valeur spécifiée, où le critère de classement peut être spécifié par un attribut binaire. |
|
Crée checked_array_iterator qui peut être utilisé par d'autres algorithmes. |
|
Convertit les éléments d'une plage spécifiée dans un tas dans lequel le premier élément est le plus grand et pour ce qu'un critère de tri peut être spécifié avec un attribut binaire. |
|
Compare deux objets et retourne le plus grand les deux, où le critère de classement peut être spécifié par un attribut binaire. |
|
Rechercher la première occurrence du plus grand élément dans une plage spécifiée où le critère de classement peut être spécifié par un attribut binaire. |
|
Combine tous les éléments de deux plages sources triées dans un intervalle unique et trié de destination, où le critère de classement peut être spécifié par un attribut binaire. |
|
Compare deux objets et retourne les moins de deux, où le critère de classement peut être spécifié par un attribut binaire. |
|
Rechercher la première occurrence du plus petit élément dans une plage spécifiée où le critère de classement peut être spécifié par un attribut binaire. |
|
Compare deux paramètres d'entrée et les retourne tant que paire, dans l'ordre mineurs à plus grande. |
|
Exécute le travail effectué par min_element et max_element dans un appel. |
|
Compare l'élément de deux plages par l'élément d'égalité ou l'équivalent dans une certaine mesure spécifié par un attribut binaire et recherche la première position où une différence se produit. |
|
Éléments de mouvements associés à une plage spécifiée. |
|
Déplace les éléments d'un itérateur vers un autre.Le déplacement commence par le dernier élément dans une plage spécifiée, et se termine par le premier élément dans cet intervalle. |
|
Réorganise les éléments dans une plage de sorte que l'ordre d'origine est remplacée par la permutation supérieure lexicographique suivante s'il existe, où le sens de mai suivant est spécifié avec un attribut binaire. |
|
Retourne true lorsqu'une condition n'est jamais répertorie entre les éléments dans l'intervalle donné. |
|
Partitionne une plage d'éléments, de définir correctement le nièmeélément de la séquence dans la plage afin que tous les éléments devant lui soient inférieur ou égal à celui-ci et tous les éléments qui suivent le dans la séquence être supérieur ou égal à ce. |
|
Réorganise un nombre spécifié d'éléments plus petits dans une plage dans une commande nondescending ou selon un critère de classement spécifié par un attribut binaire. |
|
Copie des éléments d'une plage source dans un intervalle de destination dans lequel les éléments sources sont classés par un inférieure ou un attribut binaire spécifié différent. |
|
Classifie des éléments dans une plage en deux disjoignent des jeux, avec ces éléments satisfaite un attribut unaire précédant ceux qui ne le contenu pas. |
|
Copie les éléments pour lesquels une condition est true à une destination, et pour ce que la condition est false à un autre.Les éléments doivent provenir d'une plage spécifiée. |
|
Retourne le premier élément de la plage donnée qui ne remplit pas la condition.Les éléments sont triés afin que celles qui remplissent la condition proviennent avant ceux qui ne le font pas. |
|
Supprime le plus grand élément de devant d'un tas vers le prochain - à- dernière position dans la plage puis forme d'un tas les éléments restants. |
|
Réorganise les éléments dans une plage de sorte que l'ordre d'origine est remplacée par la permutation supérieure lexicographique suivante s'il existe, où le sens de mai suivant est spécifié avec un attribut binaire. |
|
Ajoute un élément qui correspond à la fin d'une plage à un tas existant qui se compose des éléments antérieurs dans l'intervalle. |
|
Réorganise une séquence d'éléments N dans une plage dans un N!dispositions possibles sélectionnées au hasard. |
|
Supprime une valeur spécifiée d'une plage donnée sans toucher à l'ordre des éléments restants et retourner la fin d'une nouvelle plage exempte de la valeur spécifiée. |
|
Copie des éléments d'une plage source à une plage de destination, sauf que les éléments d'une valeur spécifiée ne sont pas copiés, sans toucher à l'ordre des éléments restants et retourner la fin d'un nouvel intervalle de destination. |
|
Copie des éléments d'une plage source à une plage de destination, sauf que satisfaite un attribut ne sont pas copiés, sans toucher à l'ordre des éléments restants et retourner la fin d'un nouvel intervalle de destination. |
|
Supprime les éléments qui satisfont un attribut d'un intervalle spécifié sans toucher à l'ordre des éléments restants et retourner la fin d'une nouvelle plage exempte de la valeur spécifiée. |
|
Examine chaque élément dans une plage et le remplace s'il correspond à une valeur spécifiée. |
|
Examine chaque élément dans une plage source et le remplace s'il correspond à une valeur spécifiée en copiant le résultat dans un nouvel intervalle de destination. |
|
Examine chaque élément dans une plage source et le remplace le cas d'un attribut spécifié en copiant le résultat dans un nouvel intervalle de destination. |
|
Examine chaque élément dans une plage et le remplace le cas d'un attribut spécifié. |
|
Inverse l'ordre des éléments dans une plage. |
|
Inverse l'ordre des éléments dans une plage source en les copiant dans un intervalle de destination |
|
Permute les éléments dans deux plages adjacents. |
|
Permute les éléments dans deux plages adjacents dans une plage source et imprimer le résultat sur une plage de destination. |
|
Recherche la première occurrence d'une séquence dans une fourchette objectif dont les éléments sont égaux à celles d'une séquence donnée d'éléments ou dont les éléments sont équivalents dans une certaine mesure spécifiés par un attribut binaire aux éléments de la séquence donnée. |
|
Recherche le premier sous-séquence dans une plage qui d'un nombre spécifié d'éléments ayant une valeur particulière ou une relation à cette valeur comme spécifié par un attribut binaire. |
|
Unit tous les éléments qui appartiennent à une plage source triée, mais pas à un deuxième a trié la plage source, dans une plage unique et trié de destination, où le critère de classement peut être spécifié par un attribut binaire. |
|
Unit tous les éléments qui appartiennent aux deux des plages sources triées dans un intervalle unique et trié de destination, où le critère de classement peut être spécifié par un attribut binaire. |
|
Unit tous les éléments qui appartiennent à un, mais pas les deux, plages sources triées dans un unique, a trié la plage de destination, où le critère de classement peut être spécifié par un attribut binaire. |
|
Unit tous les éléments qui appartiennent au moins une de deux plages sources triées dans un intervalle unique et trié de destination, où le critère de classement peut être spécifié par un attribut binaire. |
|
Réorganise les éléments dans une plage spécifiée dans une commande nondescending ou selon un critère de classement spécifié par un attribut binaire. |
|
Convertit un tas dans une plage trié. |
|
Classifie des éléments dans une plage en deux disjoignent des jeux, avec ces éléments satisfaite un attribut unaire précédant ceux qui ne le contenu pas, en conservant la commande relative d'éléments équivalents. |
|
Réorganise les éléments dans une plage spécifiée dans une commande nondescending ou selon un critère de classement spécifié par un attribut binaire et conserve le classement relatif des éléments équivalents. |
|
Permute les valeurs des éléments entre deux types d'objets, assignant le contenu du premier objet au deuxième objet et le contenu du deuxième au premier. |
|
Permute les éléments d'une plage avec les éléments des autres, plage de taille d'égal. |
|
Applique un objet spécifié de fonction à chaque élément dans une plage source ou à une paire d'éléments des deux plages sources et copie les valeurs de retour de l'objet de fonction dans une plage de destination. |
|
Supprime les éléments en double qui sont en regard de l'un de l'autre dans une plage spécifiée. |
|
Copie des éléments d'une plage source dans un intervalle de destination à l'exception de les éléments en double qui sont en regard de l'un de l'autre. |
|
Recherche la position du premier élément dans une plage dimensionné avec une valeur qui est supérieure à une valeur spécifiée, où le critère de classement peut être spécifié par un attribut binaire. |
Voir aussi
Référence
Sécurité des threads dans la bibliothèque C++ standard