C++ valarray Library - Function apply
Description
It returns a valarray with each of its elements initialized to the result of applying func to its corresponding element in *this.
Declaration
Following is the declaration for std::valarray::apply function.
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;
Parameters
func − It is a pointer to a function taking an argument of type T.
Return Value
It returns a valarray with each of its elements initialized to the result of applying func to its corresponding element in *this.
Exceptions
Basic guarantee − if any operation performed on the elements throws an exception.
Data races
All elements effectively copied are accessed.
Example
In below example explains about std::valarray::apply function.
#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;
}
Let us compile and run the above program, this will produce the following result −
foo contains: 1 11 21 31 41
valarray.htm