<algorithm>
Define las funciones estándar de la plantilla (STL) de contenedor de la biblioteca de plantillas que realizan algoritmos.
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
);
Comentarios
Los algoritmos de STL son genéricos porque pueden funcionar en una variedad de estructuras de datos.Las estructuras de datos que pueden funcionar en incluyen no solo de las clases de contenedor de STL como vector y list, pero también estructuras de datos y matrices de programas específicos de los elementos que cumplen los requisitos de un algoritmo determinado.Los algoritmos de STL logran este nivel de generalidad obtener acceso y recorriendo a los elementos de un contenedor a iteradores.
Los algoritmos de STL procesan los intervalos de iterador que se especifican normalmente por sus posiciones inicial o de cierre.Intervalos referidos deben ser válidos en el sentido de que todos los punteros a intervalos deben ser dereferenceable y, dentro de las secuencias de cada intervalo, la posición última debe ser accesible de primera por el aumento.
Los algoritmos de STL extienden acciones admitidos por las operaciones y las funciones miembro de cada contenedor de STL y permiten trabajar, por ejemplo, con diferentes tipos de objetos contenedor al mismo tiempo.Dos sufijos se han utilizado para transmitir la información sobre el propósito de los algoritmos.
Si el sufijo indica que el algoritmo se usa con objetos de función que funcionan en los valores de los elementos en lugar de en los valores de los propios elementos.El algoritmo de find_if busca los elementos cuyos valores satisfacen el criterio especificado por un objeto de función, y el algoritmo de find busca un valor determinado.
El sufijo _copy indica que el algoritmo no sólo manipular los valores de los elementos pero también copia los valores modificados en un rango de destino.El algoritmo de reverse invierte el orden de los elementos dentro de un intervalo, y el algoritmo de reverse_copy también copia el resultado en un rango de destino.
Los algoritmos de STL se ordenan en grupos que indican algo sobre su propósito o requisitos.Incluyen los algoritmos de modificación que cambie el valor de elementos con respecto a los algoritmos nonmodifying que no lo hagan.Los algoritmos que se transforman cambie el orden de los elementos, pero no los valores de sus elementos.quitar algoritmos puede eliminar elementos de un intervalo o de una copia de un intervalo.Los algoritmos de ordenación reordenan los elementos en un intervalo de varias maneras y algoritmos ordenados de intervalo sólo actúan en los algoritmos cuyos elementos se han ordenado de una manera determinada.
Los algoritmos numéricos STL que se proporcionan para el procesamiento numérico tienen su propio archivo de encabezado <numérico>, y funcionan los objetos y los adaptadores son definidas en los objetos de función de <funcional> de encabezado que los valores booleanos return se conocen como predicados.el predicado binario predeterminado es la comparación operator<.Normalmente los elementos que son necesidad ordenada de ser menor que comparables para, con los dos elementos, poder determinar cualquiera que es equivalente (en el sentido de que ninguno es menor que otro) o que uno sea menor que el otro.Esto produce el orden entre los elementos distintos.
Funciones
Buscar dos elementos adyacentes que son iguales o cumplen una condición especificada. |
|
Devuelve true cuando una condición está presente en cada elemento del intervalo especificado. |
|
Devuelve true cuando una condición se muestre al menos una vez en el rango especificado de elementos. |
|
Comprueba si hay un elemento en un intervalo ordenado que sea igual a un valor especificado o que es equivalente a en cierto modo especificado por un predicado binario. |
|
Asigna los valores de elementos de un intervalo de origen a un rango de destino, iterando con la secuencia de origen de elementos y asignándoles nuevas posiciones hacia delante. |
|
Asigna los valores de elementos de un intervalo de origen a un rango de destino, iterando con la secuencia de origen de elementos y asignándoles nuevas posiciones en una dirección inversa. |
|
Copie todos los elementos en un intervalo dado que no true para una condición especificada |
|
copia un número especificado de elementos. |
|
devuelve el número de elementos en un intervalo cuya coincidencia de los valores un valor especificado. |
|
devuelve el número de elementos en un intervalo cuya coincidencia de los valores una condición especificada. |
|
Compara el elemento de dos intervalos para el elemento de igualdad o la equivalencia en cierto modo especificada por un predicado binario. |
|
Encuentra un par de posiciones en un intervalo petición, el primer o menor que el equivalente a la posición de un elemento especificado y el segundo mayor que la posición del elemento, donde el sentido de equivalencia o de ordenación utilizado para establecer las posiciones de la secuencia se puede especificar por un predicado binario. |
|
Asigna el mismo valor nuevo a cada elemento del intervalo especificado. |
|
Asigna un nuevo valor en un número especificado de elementos de un intervalo que comienza con un elemento determinado. |
|
Busque la posición de la primera aparición de un elemento en un intervalo con un valor especificado. |
|
Busca en un intervalo para el subsequence último que es idéntico a una secuencia especificada o que es equivalente en cierto modo especificado por un predicado binario. |
|
Buscar la primera aparición de varios valores dentro de un intervalo de destino o para la primera aparición de varios elementos que son equivalentes en cierto modo especificados por un predicado binario un conjunto especificado de los elementos. |
|
Busque la posición de la primera aparición de un elemento de un intervalo que cumple una condición especificada. |
|
Devuelve el primer elemento del intervalo indicado que no satisfacen una condición. |
|
Se aplica un objeto especificado de la función a cada elemento en un orden frontal dentro de un intervalo y devuelve el objeto function. |
|
Asigna los valores generados por un objeto de función a cada elemento en un rango. |
|
Asigna los valores generados por un objeto de función a un número especificado de elemento es un intervalo y vuelve a la posición una más allá del valor asignado pasado. |
|
Prueba si un intervalo ordenados contiene todos los elementos contenidos en un intervalo ordenados segundo, donde el orden o el criterio de equivalencia entre los elementos se pueden especificar mediante un predicado binario. |
|
Combina los elementos de dos intervalos ordenados consecutivos en un único intervalo ordenados, donde el criterio de ordenación se puede especificar por un predicado binario. |
|
Devuelve true si los elementos del intervalo especificado forman una pila. |
|
Devuelve true si el intervalo especificado forma una pila hasta el último elemento. |
|
Devuelve true si todos los elementos del intervalo especificado qué true para una condición proceden antes de cualquier elemento que pruebe false. |
|
Devuelve true si los elementos del intervalo especificado están ordenados. |
|
Devuelve true si los elementos del intervalo especificado están ordenados. |
|
Intercambia dos valores referidos por un par de iteradores especificados. |
|
Compara el elemento por elemento entre dos secuencias para determinar qué es menor de los dos. |
|
Encuentra la posición del primer elemento de un intervalo pedido que tiene un valor mayor o igual a un valor especificado, donde el criterio de ordenación se puede especificar por un predicado binario. |
|
Crea checked_array_iterator que puede ser utilizada por otros algoritmos. |
|
Convierte los elementos de un intervalo especificado en una pila del primer elemento es el mayor y para el que se puede especificar un criterio de ordenación con un predicado binario. |
|
Compara dos objetos y devuelve el mayor de los dos, donde el criterio de ordenación se puede especificar por un predicado binario. |
|
Encuentra la primera aparición del elemento más grande en un intervalo especificado donde el criterio de ordenación se puede especificar por un predicado binario. |
|
Combina todos los elementos de dos intervalos de origen ordenados en un rango de destino único, ordenados, donde el criterio de ordenación se puede especificar por un predicado binario. |
|
Compara dos objetos y devuelve el menor de los dos, donde el criterio de ordenación se puede especificar por un predicado binario. |
|
Encuentra la primera aparición del elemento más pequeño en un intervalo especificado donde el criterio de ordenación se puede especificar por un predicado binario. |
|
Compara dos parámetros de entrada y los devuelve como un par, en orden de al menos al máximo. |
|
realiza el trabajo realizado por min_element y max_element en una llamada. |
|
Compara el elemento de dos intervalos para el elemento de igualdad o su equivalente en cierto modo especificado por un predicado binario y busque la primera posición donde una diferencia aparece. |
|
Elementos de movimiento asociado con un intervalo especificado. |
|
Mover los elementos de un iterador a otro.El movimiento comienza con el último elemento en un intervalo especificado, y finaliza con el primer elemento en ese intervalo. |
|
Reorganiza los elementos en un intervalo de modo que el orden original se reemplaza por la mayor permutación lexicográficamente siguiente si existe, donde el sentido para el próximo pueden se especifica con un predicado binario. |
|
Devuelve true cuando una condición nunca está presente entre elementos del intervalo especificado. |
|
Las particiones un intervalo de elementos, correctamente situando el enésimoelemento de la secuencia en el intervalo de modo que todos los elementos delante de menor o igual que él y todos los elementos que lo siguen en la secuencia se mayor o igual que. |
|
Organiza un número especificado de elementos más pequeños de un intervalo en nondescending petición o según un criterio de ordenación especificado por un predicado binario. |
|
Copia los elementos de un intervalo de origen en un intervalo de destino donde los elementos de origen se ordenan por menos que u otro predicado binario especificado. |
|
Ordena elementos en un intervalo en dos conjuntos disjuntos, con los elementos satisfaciendo un predicado unario que precede a los que no puedan para satisfacerlo. |
|
Copia los elementos para los que una condición es true a un destino, y para qué es false la condición a otro.Los elementos deben proceder de un intervalo especificado. |
|
Devuelve el primer elemento del intervalo especificado no cumple la condición.Se ordenan los elementos para que los que cumplen la condición vengan antes de los que no lo hacen. |
|
Quita el elemento mayor de delante de una pila el siguiente - posición a-pasada en el intervalo y después forma una nueva pila de los elementos restantes. |
|
Reorganiza los elementos en un intervalo de modo que el orden original se reemplaza por la mayor permutación lexicográficamente siguiente si existe, donde el sentido para el próximo pueden se especifica con un predicado binario. |
|
Agrega un elemento que está al final de un intervalo una pila existente que se compone de los elementos anteriores en el intervalo. |
|
¡Reorganiza una secuencia de elementos n de un intervalo de n!organizaciones posibles seleccionado al azar. |
|
Elimina un valor especificado de un intervalo determinado sin perturbar el orden de los elementos restantes y devolver el final de un nuevo intervalo libre value especificado. |
|
Copia los elementos de un intervalo de origen a un rango de destino, excepto en que los elementos del valor especificado no se copian, sin perturbar el orden de los elementos restantes y devolver el final de un nuevo intervalo de destino. |
|
Copia los elementos de un intervalo de origen a un rango de destino, salvo que satisfaciendo un predicado no se copian, sin perturbar el orden de los elementos restantes y devolver el final de un nuevo intervalo de destino. |
|
Elimina los elementos que cumplen un predicado de un intervalo determinado sin perturbar el orden de los elementos restantes y devolver el final de un nuevo intervalo libre value especificado. |
|
Examina cada elemento en un intervalo y reemplácela si coincide con un valor especificado. |
|
Examina cada elemento en un intervalo de origen y reemplácela si coincide con un valor especificado al copiar el resultado en un nuevo intervalo de destino. |
|
Examina cada elemento en un intervalo de origen y reemplácela si satisface un predicado especificado al copiar el resultado en un nuevo intervalo de destino. |
|
Examina cada elemento en un intervalo y reemplácela si satisface el predicado especificado. |
|
Invierte el orden de los elementos dentro de un intervalo. |
|
Invierte el orden de los elementos dentro de un intervalo de origen mientras la copia en un intervalo de destino |
|
Cambie los elementos en dos intervalos adyacentes. |
|
Cambie los elementos en dos intervalos adyacentes dentro de un intervalo de origen y copia el resultado a un rango de destino. |
|
Buscar la primera aparición de una secuencia dentro de un intervalo de destino cuyos elementos son iguales a los de una secuencia determinada de elementos o cuyos elementos son equivalentes en cierto modo especificados por un predicado binario a los elementos de la secuencia especificada. |
|
Buscar el primer subsequence de un intervalo que de un número especificado de elementos que tienen un valor determinado o una relación a ese valor según lo especificado por un predicado binario. |
|
Une todos los elementos que pertenecen a un intervalo de origen ordenada, pero no a un segundo tamaño el intervalo de origen, en un rango de destino único, ordenados, donde el criterio de ordenación se puede especificar por un predicado binario. |
|
Une todos los elementos que pertenecen a los dos intervalos de origen ordenados en un rango de destino único, ordenados, donde el criterio de ordenación se puede especificar por un predicado binario. |
|
Une todos los elementos que pertenecen a uno, pero no ambos, intervalos de origen ordenados en un único, ajusta el intervalo de destino, donde el criterio de ordenación se puede especificar por un predicado binario. |
|
Une todos los elementos que pertenecen al menos uno de dos intervalos de origen ordenados en un rango de destino único, ordenados, donde el criterio de ordenación se puede especificar por un predicado binario. |
|
Organiza los elementos en un intervalo especificado en nondescending petición o según un criterio de ordenación especificado por un predicado binario. |
|
Convierte un montón en un intervalo ordenados. |
|
Ordena elementos en un intervalo en dos conjuntos disjuntos, con los elementos satisfaciendo un predicado unario que precede a los que no puedan para satisfacerlo, conservando el orden relativo de elementos equivalentes. |
|
Organiza los elementos en un intervalo especificado en nondescending petición o según un criterio de ordenación especificado por un predicado binario y conserva el orden relativo de elementos equivalentes. |
|
Cambie los valores de los elementos entre dos tipos de objetos, asignando el contenido del primer objeto el segundo objeto y el contenido de segundos al primer. |
|
Cambie los elementos de un intervalo con elementos de otro, como - intervalo ordenados. |
|
Se aplica un objeto especificado de la función a cada elemento de un intervalo de origen o un par de elementos de dos intervalos de origen y copia los valores devueltos del objeto function en un rango de destino. |
|
Quita los elementos duplicados que se adyacente a uno para en un intervalo especificado. |
|
Copia los elementos de un intervalo de origen en un rango de destino salvo los elementos duplicados que se adyacente a sí. |
|
Encuentra la posición del primer elemento de un intervalo pedido que tiene un valor mayor que un valor especificado, donde el criterio de ordenación se puede especificar por un predicado binario. |
Vea también
Referencia
Seguridad para subprocesos de la biblioteca estándar de C++
Biblioteca de plantillas estándar