Namespaces
Variants

std:: valarray

From cppreference.net
Definido en el encabezado <valarray>
template < class T >
class valarray ;

std::valarray es la clase para representar y manipular arrays de valores. Soporta operaciones matemáticas elemento por elemento y varias formas de operadores de subíndice generalizados, segmentación y acceso indirecto.

Contenidos

Notas

std::valarray y las clases auxiliares están definidas para estar libres de ciertas formas de aliasing, permitiendo así que las operaciones sobre estas clases se optimicen de manera similar al efecto de la palabra clave restrict en el lenguaje de programación C. Además, se permite que las funciones y operadores que toman argumentos valarray devuelvan objetos proxy para posibilitar que el compilador optimice una expresión como v1 = a * v2 + v3 ; como un único bucle que ejecuta v1 [ i ] = a * v2 [ i ] + v3 [ i ] ; evitando temporales o múltiples pasadas. Sin embargo, expression templates hacen que la misma técnica de optimización esté disponible para cualquier contenedor C++, y la mayoría de las bibliotecas numéricas prefieren expression templates a valarrays por su flexibilidad. Algunas implementaciones de la biblioteca estándar de C++ utilizan expression templates para implementar operaciones eficientes en std::valarray (por ejemplo, GNU libstdc++ y LLVM libc++). Rara vez se optimizan los valarrays más allá, como en Intel Integrated Performance Primitives .

Parámetros de plantilla

T - el tipo de los elementos. El tipo debe cumplir con los NumericType requisitos

Tipos de miembros

Tipo de miembro Definición
value_type T

Funciones miembro

construye un nuevo arreglo numérico
(función miembro pública)
destruye el arreglo numérico
(función miembro pública)
asigna los contenidos
(función miembro pública)
obtiene/establece elemento, segmento o máscara del valarray
(función miembro pública)
aplica un operador aritmético unario a cada elemento del valarray
(función miembro pública)
aplica operador de asignación compuesta a cada elemento del valarray
(función miembro pública)
intercambia con otro valarray
(función miembro pública)
retorna el tamaño del valarray
(función miembro pública)
cambia el tamaño del valarray
(función miembro pública)
calcula la suma de todos los elementos
(función miembro pública)
retorna el elemento más pequeño
(función miembro pública)
retorna el elemento más grande
(función miembro pública)
desplaza los elementos del valarray con relleno de ceros
(función miembro pública)
desplazamiento circular de los elementos del valarray
(función miembro pública)
aplica una función a cada elemento de un valarray
(función miembro pública)

Funciones no miembro

especializa el algoritmo std::swap
(plantilla de función)
sobrecarga std::begin
(plantilla de función)
especializa std::end
(plantilla de función)
aplica operadores binarios a cada elemento de dos valarrays, o un valarray y un valor
(plantilla de función)
compara dos valarrays o un valarray con un valor
(plantilla de función)
aplica la función abs a cada elemento del valarray
(plantilla de función)
Funciones exponenciales
aplica la función std::exp a cada elemento del valarray
(plantilla de función)
aplica la función std::log a cada elemento del valarray
(plantilla de función)
aplica la función std::log10 a cada elemento del valarray
(plantilla de función)
Funciones de potencia
aplica la función std::pow a dos valarrays o a un valarray y un valor
(plantilla de función)
aplica la función std::sqrt a cada elemento del valarray
(plantilla de función)
Funciones trigonométricas
aplica la función std::sin a cada elemento del valarray
(plantilla de función)
aplica la función std::cos a cada elemento del valarray
(plantilla de función)
aplica la función std::tan a cada elemento del valarray
(plantilla de función)
aplica la función std::asin a cada elemento del valarray
(plantilla de función)
aplica la función std::acos a cada elemento del valarray
(plantilla de función)
aplica la función std::atan a cada elemento del valarray
(plantilla de función)
aplica la función std::atan2 a un valarray y un valor
(plantilla de función)
Funciones hiperbólicas
aplica la función std::sinh a cada elemento del valarray
(plantilla de función)
aplica la función std::cosh a cada elemento del valarray
(plantilla de función)
aplica la función std::tanh a cada elemento del valarray
(plantilla de función)

Clases auxiliares

Segmento tipo BLAS de un valarray: índice inicial, longitud, paso
(clase)
proxy a un subconjunto de un valarray después de aplicar un slice
(plantilla de clase)
segmento generalizado de un valarray: índice inicial, conjunto de longitudes, conjunto de pasos
(clase)
proxy a un subconjunto de un valarray después de aplicar un gslice
(plantilla de clase)
proxy a un subconjunto de un valarray después de aplicar una máscara booleana operator[]
(plantilla de clase)
proxy a un subconjunto de un valarray después de aplicar indirect operator[]
(plantilla de clase)

Guías de deducción (desde C++17)

Véase también

plantilla de alias de conveniencia para basic_simd que puede especificar su ancho
(plantilla de alias)
plantilla de alias de conveniencia para basic_simd_mask que puede especificar su ancho
(plantilla de alias)
(parallelism TS v2)
tipo vectorial de procesamiento de datos en paralelo
(plantilla de clase)
(parallelism TS v2)
tipo de procesamiento de datos en paralelo con el tipo de elemento bool
(plantilla de clase)