Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::valarray<T>::apply

      From cppreference.com
      <cpp‎ |numeric‎ |valarray
       
       
       
      std::valarray
      Member functions
      Non-member functions
      Helper classes
      Deduction guides(C++17)
       
      valarray<T> apply( T func(T))const;
      valarray<T> apply( T func(const T&))const;

      Returns a new valarray of the same size with values which are acquired by applying functionfunc to the previous values of the elements.

      Contents

      [edit]Parameters

      func - function to apply to the values

      [edit]Return value

      The resulting valarray with values acquired by applying functionfunc.

      [edit]Notes

      The function can be implemented with the return type different fromstd::valarray. In this case, the replacement type has the following properties:

      [edit]Possible implementation

      Following straightforward implementations can be replaced by expression templates for a higher efficiency.

      template<class T>valarray<T> valarray<T>::apply(T func(T))const{    valarray<T> other=*this;for(T& i: other)        i= func(i);return other;} template<class T>valarray<T> valarray<T>::apply(T func(const T&))const{    valarray<T> other=*this;for(T& i: other)        i= func(i);return other;}

      [edit]Example

      Calculates and prints the first 10 factorials.

      Run this code
      #include <cmath>#include <iostream>#include <valarray> int main(){std::valarray<int> v={1,2,3,4,5,6,7,8,9,10};    v= v.apply([](int n)->int{returnstd::round(std::tgamma(n+1));});for(auto n: v)std::cout<< n<<' ';std::cout<<'\n';}

      Output:

      1 2 6 24 120 720 5040 40320 362880 3628800

      [edit]See also

      applies a unaryfunction object to elements from arange
      (function template)[edit]
      applies a unaryfunction object to elements from arange
      (algorithm function object)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/numeric/valarray/apply&oldid=160849"

      [8]ページ先頭

      ©2009-2025 Movatter.jp