Biblioteca valarray de C ++: aplicación de función

Descripción

Devuelve un valarray con cada uno de sus elementos inicializados al resultado de aplicar func a su elemento correspondiente en * this.

Declaración

A continuación se muestra la declaración de la función std :: valarray :: apply.

valarray apply (T func(T)) const;
valarray apply (T func(const T&)) const;

C ++ 11

valarray apply (T func(T)) const;
valarray apply (T func(const T&)) const;

Parámetros

func - Es un puntero a una función que toma un argumento de tipo T.

Valor devuelto

Devuelve un valarray con cada uno de sus elementos inicializados al resultado de aplicar func a su elemento correspondiente en * this.

Excepciones

Basic guarantee - si alguna operación realizada en los elementos arroja una excepción.

Carreras de datos

Se accede a todos los elementos efectivamente copiados.

Ejemplo

En el siguiente ejemplo se explica la función std :: valarray :: apply.

#include <iostream>
#include <cstddef>
#include <valarray>

int increment (int x) {return ++x;}

int main () {
   int init[]={0,10,20,30,40};
   std::valarray<int> foo (init,5);

   std::valarray<int> bar = foo.apply(increment);

   std::cout << "foo contains:";
   for (std::size_t n=0; n<bar.size(); n++)
      std::cout << ' ' << bar[n];
   std::cout << '\n';

   return 0;
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

foo contains: 1 11 21 31 41