Biblioteca estándar de C++<valarray>

de C++<valarray>La biblioteca es una biblioteca utilizada para el cálculo numérico, que proporciona una forma eficiente de manejar arreglos numéricos.<valarray>en la bibliotecavalarrayLa plantilla de clase permite a los programadores realizar operaciones matemáticas a nivel de elementos en arreglos, incluyendo suma, resta, multiplicación, división, etc. Además, también admite funciones matemáticas más avanzadas, como exponenciales, logaritmos, seno, coseno, etc.

valarrayEs una plantilla de clase en la biblioteca estándar de C++, utilizada para representar y manipular arreglos numéricos. Proporciona una forma conveniente de realizar operaciones a nivel de elementos en los arreglos.

Sintaxis

valarraySu sintaxis básica es la siguiente:

#include <valarray>

int main() {
    std::valarray<double> va(10); // 创建一个包含10个double元素的valarray
    va = 1; // 将所有元素初始化为1
    // ...
    return 0;
}

Ejemplo

1. Crear e inicializar valarray

Ejemplo

#include <iostream>
#include <valarray>

int main() {
    std::valarray<double> va(5); // Crear un valarray que contenga 5 elementos double
    va = {1.0, 2.0, 3.0, 4.0, 5.0}; // Inicializar valarray

    for (auto i : va) {
        std::cout << i << " ";
    }
    std::cout << std::endl;

    return 0;
}

Salida:

1 2 3 4 5

2. Operaciones básicas

Ejemplo

#include <iostream>
#include <valarray>

int main() {
    std::valarray<double> va1(5), va2(5);
    va1 = {1.0, 2.0, 3.0, 4.0, 5.0};
    va2 = {2.0, 3.0, 4.0, 5.0, 6.0};

    std::valarray<double> sum = va1 + va2; // Suma
    std::valarray<double> diff = va1 - va2; // Resta
    std::valarray<double> prod = va1 * va2; // Multiplicación
    std::valarray<double> quot = va1 / va2; // División

    std::cout << "Sum: ";
    for (auto i : sum) {
        std::cout << i << " ";
    }
    std::cout << std::endl;

    std::cout << "Difference: ";
    for (auto i : diff) {
        std::cout << i << " ";
    }
    std::cout << std::endl;

    std::cout << "Product: ";
    for (auto i : prod) {
        std::cout << i << " ";
    }
    std::cout << std::endl;

    std::cout << "Quotient: ";
    for (auto i : quot) {
        std::cout << i << " ";
    }
    std::cout << std::endl;

    return 0;
}

Salida:

Sum: 3 5 7 9 11 
Difference: -1 -1 1 1 -1 
Product: 2 6 12 20 30 
Quotient: 0.5 0.6666667 0.75 0.8 0.8333334

3. Usar valarray para operaciones de funciones matemáticas

Ejemplo

#include <iostream>
#include <valarray>
#include <cmath>

int main() {
    std::valarray<double> va(5);
    va = {1.0, 2.0, 3.0, 4.0, 5.0};

    std::valarray<double> squares = va * va; // Cuadrado
    std::valarray<double> roots = std::sqrt(va); // Raíz cuadrada

    std::cout << "Squares: ";
    for (auto i : squares) {
        std::cout << i << " ";
    }
    std::cout << std::endl;

    std::cout << "Square Roots: ";
    for (auto i : roots) {
        std::cout << i << " ";
    }
    std::cout << std::endl;

    return 0;
}

Salida:

Squares: 1 4 9 16 25 
Square Roots: 1 1.4142136 1.7320508
Otras extensiones