Espacios de nombres
Variantes
Acciones

Algoritmos restringidos (desde C++20)

De cppreference.com
< cpp‎ | algorithm
 
 
Biblioteca de algoritmos
Políticas de ejecución (C++17)
Operaciones de secuencia no modificantes
(C++11)(C++11)(C++11)
(C++17)
Operaciones de secuencia modificantes
Operaciones en almacenamiento no inicializado
Operaciones de partición
Operaciones de ordenación
(C++11)
Operaciones de búsqueda binaria
Operaciones de conjuntos (en rangos ordenados)
Operaciones de pila
(C++11)
Operaciones mínimo/máximo
(C++11)
(C++17)
Permutaciones
Operaciones numéricas
Bibliotecas C
 
Algoritmos restringidos
Operaciones de secuencia no modificantes
Operaciones de secuencia modificantes
Operaciones en almacenamiento sin inicializar
Operaciones de partición
Operaciones de ordenamiento
Operaciones de búsqueda binaria
Operaciones de conjuntos (en rangos ordenados)
Operaciones de montículo/montón
Operaciones de mínimo/máximo
Permutaciones
 

C++20 proporciona versiones restringidas de la mayoría de los algoritmos en el espacio de nombres std::ranges. En estos algoritmos, un rango puede especificarse ya sea como un par iterador-centinela pair o como un único range, y se apoyan las proyecciones e invocables de puntero a miembro. Además, los tipos de retorno de la mayoría de los algoritmos se han cambiado para que devuelvan toda la información potencialmente útil calculada durante la ejecución del algoritmo.

Contenido

[editar] Objetos función de algoritmos

Un objeto función de algoritmo (AFO por sus siglas en inglés), conocido informalmente como niebloid, es un objeto punto de personalización (CPO por sus siglas en inglés) que se especifica como una o más plantillas de función sobrecargadas. El nombre de estas plantillas de función designa el objeto función de algoritmo correspondiente.

Para un objeto función de algoritmo o, sea S el conjunto correspondiente de plantillas de función. Entonces, para cualquier secuencia de argumentos args..., o(args...) es de expresión equivalente a s(args...), donde el resultado de la búsqueda de nombre para s es el conjunto de sobrecarga S.

Los algoritmos restringidos en el espacio de nombres std::ranges se definen como objetos función de algoritmo. Como resultado:

[editar] Algoritmos restringidos

Definido en el archivo de encabezado <algorithm>
Definido en el espacio de nombres std::ranges
Operaciones de secuencias no modificantes
Comprueba si un predicado es true para todos, alguno o ninguno de los elementos de un rango.
(niebloid) [editar]
Aplica una función a un rango de elementos.
(niebloid) [editar]
Aplica un objeto función a los primeros n elementos de una secuencia.
(niebloid) [editar]
Devuelve el número de elementos que cumplan con un criterio específico.
(niebloid) [editar]
Encuentra la primera posición donde dos rangos difieren.
(niebloid) [editar]
Determina si dos conjuntos de elementos son iguales.
(niebloid) [editar]
Devuelve true si un rango es lexicográficamente menor que otro.
(niebloid) [editar]
Encuentra el primer elemento que satisfaga un criterio específico.
(niebloid) [editar]
Encuentra la última secuencia de elementos en un cierto rango.
(niebloid) [editar]
Busca por cualquiera de un conjunto de elementos.
(niebloid) [editar]
Encuentra dos primeros elementos contiguos idénticos (o que satisfagan un predicado dado).
(niebloid) [editar]
Busca una subsecuencia de elementos en un rango.
(niebloid) [editar]
Busca un número de copias consecutivas de un elemento en un rango.
(niebloid) [editar]
Verifica si un rango comienza con otro rango.
(niebloid) [editar]
Verifica si un rango termina con otro rango.
(niebloid) [editar]
Operaciones de secuencias modificantes
Copia un rango de elementos a una nueva ubicación.
(niebloid) [editar]
Copia un número de elementos a una nueva ubicación.
(niebloid) [editar]
Copia un rango de elementos en orden inverso.
(niebloid) [editar]
Mueve un rango de elementos a una nueva ubicación.
(niebloid) [editar]
Mueve un rango de elementos a una nueva ubicación en orden inverso.
(niebloid) [editar]
Asigna un cierto valor a un rango de elementos.
(niebloid) [editar]
Asigna un valor a un número de elementos.
(niebloid) [editar]
Aplica una función a un rango de elementos.
(niebloid) [editar]
Guarda el resultado de una función en un rango.
(niebloid) [editar]
Guarda el resultado de N aplicaciones de una función.
(niebloid) [editar]
Elimina elementos que satisfacen un criterio específico.
(niebloid) [editar]
Copia un rango de elementos, omitiendo aquellos que satisfacen un criterio específico
(niebloid) [editar]
Reemplaza todos los valores que satisfacen un criterio específico con otro valor.
(niebloid) [editar]
Copia un rango, reemplazando los elementos que satisfacen un criterio específico con otro valor.
(niebloid) [editar]
Intercambia dos rangos de elementos.
(niebloid) [editar]
Invierte el orden de los elementos en un rango.
(niebloid) [editar]
Crea una copia de un rango que está invertido.
(niebloid) [editar]
Rota el orden de los elementos en un rango.
(niebloid) [editar]
Copia y rota un rango de elementos.
(niebloid) [editar]
Reordena aleatoriamente los elementos en un rango.
(niebloid) [editar]
Selecciona n elementos al azar de una secuencia.
(niebloid) [editar]
Elimina elementos duplicados consecutivos en un rango.
(niebloid) [editar]
Crea una copia de algún rango de elementos que no contiene duplicados consecutivos.
(niebloid) [editar]
Operaciones de partición
Determina si el rango está dividido por el predicado dado.
(niebloid) [editar]
Divide un rango de elementos en dos grupos
(niebloid) [editar]
Copia un rango, dividiendo los elementos en dos grupos
(niebloid) [editar]
Divide elementos en dos grupos, conservando su orden relativo.
(niebloid) [editar]
Localiza el punto de partición de un rango particionado
(niebloid) [editar]
Operaciones de ordenamiento
Comprueba si un rango está ordenado en orden ascendente.
(niebloid) [editar]
Encuentra el mayor subrango ordenado.
(niebloid) [editar]
Ordena un rango en orden ascendente.
(niebloid) [editar]
Ordena los primeros N elementos de un rango
(niebloid) [editar]
Copia y ordena parcialmente un rango de elementos
(niebloid) [editar]
Ordena un rango de elementos conservando el orden entre elementos que son iguales.
(niebloid) [editar]
Ordena parcialmente el rango dado asegurándose de que esté particionado por el elemento dado
(niebloid) [editar]
Operaciones de búsqueda binaria (en rangos ordenados)
Devuelve un iterador al primer elemento no menor que el valor dado.
(niebloid) [editar]
Devuelve un iterador al primer elemento mayor que un cierto valor.
(niebloid) [editar]
Determina si un elemento existe en un cierto rango.
(niebloid) [editar]
Devuelve un rango de elementos que coinciden con una clave especifica.
(niebloid) [editar]
Operaciones de conjuntos (en rangos ordenados)
Fusiona dos rangos ordenados
(niebloid) [editar]
Fusiona dos rangos ordenados in situ.
(niebloid) [editar]
Devuelve true si una secuencia es una subsecuencia de otra.
(niebloid) [editar]
Calcula la diferencia entre dos conjuntos.
(niebloid) [editar]
Calcula la intersección de dos conjuntos.
(niebloid) [editar]
Calcula la diferencia simétrica entre dos conjuntos.
(niebloid) [editar]
Calcula la unión de dos conjuntos.
(niebloid) [editar]
Operaciones de montículo (heap)
Comprueba si el rango dado es un montículo de máximos.
(niebloid) [editar]
Encuentra el mayor subrango que es un montículo de máximos.
(niebloid) [editar]
Crea un montículo de máximos a partir de un rango de elementos.
(niebloid) [editar]
Agrega un elemento a un montículo de máximos
(niebloid) [editar]
Elimina el elemento más grande de un montículo de máximos
(niebloid) [editar]
Convierte un montículo de máximos en un rango de elementos ordenado de manera ascendente.
(niebloid) [editar]
Operaciones de máximos y mínimos
Devuelve el mayor de los valores dados
(niebloid) [editar]
Devuelve el elemento más grande en un rango
(niebloid) [editar]
Devuelve el menor de los valores dados
(niebloid) [editar]
Devuelve el elemento menor en un rango
(niebloid) [editar]
Devuelve el menor y mayor de dos elementos
(niebloid) [editar]
Devuelve los elementos menor y mayor en un rango
(niebloid) [editar]
Sujeta un valor entre un par de valores límite.
(niebloid) [editar]
Operaciones de permutación
Determina si una secuencia es una permutación de otra secuencia.
(niebloid) [editar]
Genera la siguiente permutación lexicográfica mayor de un rango de elementos.
(niebloid) [editar]
Genera la siguiente permutación lexicográfica más pequeña de un rango de elementos
(niebloid) [editar]

[editar] Operaciones numéricas restringidas

Definido en el archivo de encabezado <numeric>
Definido en el espacio de nombres std::ranges
Llena un rango con incrementos sucesivos del valor inicial.
(niebloid) [editar]

[editar] Algoritmos restringidos de memoria sin inicializar

Definido en el archivo de encabezado <memory>
Definido en el espacio de nombres std::ranges
Copia un rango de objetos a un área de memoria sin inicializar.
(niebloid) [editar]
Copia un número de objetos a un área de memoria sin inicializar.
(niebloid) [editar]
Copia un objeto en un área de memoria sin inicializar, definido por un rango.
(niebloid) [editar]
Copia un objeto a un área de memoria sin inicializar, definido por un inicio y una cuenta.
(niebloid) [editar]
Mueve un rango de objetos a un área de memoria sin inicializar.
(niebloid) [editar]
Mueve un número de objetos a un área de memoria sin inicializar.
(niebloid) [editar]
Construye objetos mediante la

inicialización por defecto en un área de memoria sin inicializar, definido por un rango.
(niebloid) [editar]


(niebloid) [editar]
Construye objetos mediante la inicialización de un valor en un área de memoria sin inicializar, definido por un rango.
(niebloid) [editar]
Construye objetos mediante la inicialización de un valor en un área de memoria sin inicializar, definido por un inicio y una cuenta.
(niebloid) [editar]
Destruye un rango de objetos.
(niebloid) [editar]
Destruye un número de objetos en un rango.
(niebloid) [editar]
Destruye un objeto en una dirección dada.
(niebloid) [editar]
Crea un objeto en una dirección dada
(niebloid) [editar]

[editar] Tipos de retorno

Definido en el archivo de encabezado <algorithm>
Definido en el espacio de nombres std::ranges
Proporciona una manera de almacenar un iterador y un objeto función como una sola unidad.
(plantilla de clase) [editar]
Proporciona una manera de almacenar dos iteradores como una sola unidad.
(plantilla de clase) [editar]
Proporciona una manera de almacenar dos iteradores como una sola unidad.
(plantilla de clase) [editar]
Proporciona una manera de almacenar tres iteradores como una sola unidad.
(plantilla de clase) [editar]
Proporciona una manera de almacenar tres iteradores como una sola unidad.
(plantilla de clase) [editar]
Proporciona una manera de almacenar dos objetos o referencias al mismo tipo como una sola unidad.
(plantilla de clase) [editar]
Proporciona una manera de almacenar un iterador y una bandera booleana como una sola unidad.
(plantilla de clase) [editar]