Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      Standard library header <numeric>

      From cppreference.com
      <cpp‎ |header
       
       
      Standard library headers
       

      This header is part of thenumeric library.

      Functions

      (C++11)
      fills a range with successive increments of the starting value
      (function template)[edit]
      fills a range with successive increments of the starting value
      (algorithm function object)[edit]
      sums up or folds a range of elements
      (function template)[edit]
      (C++17)
      similar tostd::accumulate, except out of order
      (function template)[edit]
      applies an invocable, then reduces out of order
      (function template)[edit]
      computes the inner product of two ranges of elements
      (function template)[edit]
      computes the differences between adjacent elements in a range
      (function template)[edit]
      computes the partial sum of a range of elements
      (function template)[edit]
      similar tostd::partial_sum, includes theith input element in theith sum
      (function template)[edit]
      similar tostd::partial_sum, excludes theith input element from theith sum
      (function template)[edit]
      applies an invocable, then calculates inclusive scan
      (function template)[edit]
      applies an invocable, then calculates exclusive scan
      (function template)[edit]
      (C++17)
      computes the greatest common divisor of two integers
      (function template)[edit]
      (C++17)
      computes the least common multiple of two integers
      (function template)[edit]
      (C++20)
      midpoint between two numbers or pointers
      (function template)[edit]
      (C++26)
      saturating addition operation on two integers
      (function template)[edit]
      (C++26)
      saturating subtraction operation on two integers
      (function template)[edit]
      (C++26)
      saturating multiplication operation on two integers
      (function template)[edit]
      (C++26)
      saturating division operation on two integers
      (function template)[edit]
      returns an integer value clamped to the range of another integer type
      (function template)[edit]

      [edit]Synopsis

      namespace std{// accumulatetemplate<class InputIt,class T>constexpr T accumulate(InputIt first, InputIt last, T init);template<class InputIt,class T,class BinaryOperation>constexpr T accumulate(InputIt first, InputIt last, T init, BinaryOperation binary_op); // reducetemplate<class InputIt>constexprtypename iterator_traits<InputIt>::value_type      reduce(InputIt first, InputIt last);template<class InputIt,class T>constexpr T reduce(InputIt first, InputIt last, T init);template<class InputIt,class T,class BinaryOperation>constexpr T reduce(InputIt first, InputIt last, T init, BinaryOperation binary_op);template<class ExecutionPolicy,class ForwardIt>typename iterator_traits<ForwardIt>::value_type      reduce(ExecutionPolicy&& exec,             ForwardIt first, ForwardIt last);template<class ExecutionPolicy,class ForwardIt,class T>    T reduce(ExecutionPolicy&& exec,             ForwardIt first, ForwardIt last, T init);template<class ExecutionPolicy,class ForwardIt,class T,class BinaryOperation>    T reduce(ExecutionPolicy&& exec,             ForwardIt first, ForwardIt last, T init, BinaryOperation binary_op); // inner producttemplate<class InputIt1,class InputIt2,class T>constexpr T inner_product(InputIt1 first1, InputIt1 last1,                              InputIt2 first2, T init);template<class InputIt1,class InputIt2,class T,class BinaryOperation1,class BinaryOperation2>constexpr T inner_product(InputIt1 first1, InputIt1 last1,                              InputIt2 first2, T init,                              BinaryOperation1 binary_op1,                              BinaryOperation2 binary_op2); // transform reducetemplate<class InputIt1,class InputIt2,class T>constexpr T transform_reduce(InputIt1 first1, InputIt1 last1,                                 InputIt2 first2,                                 T init);template<class InputIt1,class InputIt2,class T,class BinaryOperation1,class BinaryOperation2>constexpr T transform_reduce(InputIt1 first1, InputIt1 last1,                                 InputIt2 first2,                                 T init,                                 BinaryOperation1 binary_op1,                                 BinaryOperation2 binary_op2);template<class InputIt,class T,class BinaryOperation,class UnaryOperation>constexpr T transform_reduce(InputIt first, InputIt last,                                 T init,                                 BinaryOperation binary_op, UnaryOperation unary_op);template<class ExecutionPolicy,class ForwardIt1,class ForwardIt2,class T>    T transform_reduce(ExecutionPolicy&& exec,                       ForwardIt1 first1, ForwardIt1 last1,                       ForwardIt2 first2,                       T init);template<class ExecutionPolicy,class ForwardIt1,class ForwardIt2,class T,class BinaryOperation1,class BinaryOperation2>    T transform_reduce(ExecutionPolicy&& exec,                       ForwardIt1 first1, ForwardIt1 last1,                       ForwardIt2 first2,                       T init,                       BinaryOperation1 binary_op1,                       BinaryOperation2 binary_op2);template<class ExecutionPolicy,class ForwardIt,class T,class BinaryOperation,class UnaryOperation>    T transform_reduce(ExecutionPolicy&& exec,                       ForwardIt first, ForwardIt last,                       T init,                       BinaryOperation binary_op, UnaryOperation unary_op); // partial sumtemplate<class InputIt,class OutputIt>constexpr OutputIt partial_sum(InputIt first,                                   InputIt last,                                   OutputIt result);template<class InputIt,class OutputIt,class BinaryOperation>constexpr OutputIt partial_sum(InputIt first,                                   InputIt last,                                   OutputIt result,                                   BinaryOperation binary_op); // exclusive scantemplate<class InputIt,class OutputIt,class T>constexpr OutputIt exclusive_scan(InputIt first, InputIt last,                                      OutputIt result,                                      T init);template<class InputIt,class OutputIt,class T,class BinaryOperation>constexpr OutputIt exclusive_scan(InputIt first, InputIt last,                                      OutputIt result,                                      T init, BinaryOperation binary_op);template<class ExecutionPolicy,class ForwardIt1,class ForwardIt2,class T>    ForwardIt2 exclusive_scan(ExecutionPolicy&& exec,                              ForwardIt1 first, ForwardIt1 last,                              ForwardIt2 result,                              T init);template<class ExecutionPolicy,class ForwardIt1,class ForwardIt2,class T,class BinaryOperation>    ForwardIt2 exclusive_scan(ExecutionPolicy&& exec,                              ForwardIt1 first, ForwardIt1 last,                              ForwardIt2 result,                              T init, BinaryOperation binary_op); // inclusive scantemplate<class InputIt,class OutputIt>constexpr OutputIt inclusive_scan(InputIt first, InputIt last, OutputIt result);template<class InputIt,class OutputIt,class BinaryOperation>constexpr OutputIt inclusive_scan(InputIt first, InputIt last,                                      OutputIt result,                                      BinaryOperation binary_op);template<class InputIt,class OutputIt,class BinaryOperation,class T>constexpr OutputIt inclusive_scan(InputIt first, InputIt last,                                      OutputIt result,                                      BinaryOperation binary_op, T init);template<class ExecutionPolicy,class ForwardIt1,class ForwardIt2>    ForwardIt2 inclusive_scan(ExecutionPolicy&& exec,                              ForwardIt1 first, ForwardIt1 last,                              ForwardIt2 result);template<class ExecutionPolicy,class ForwardIt1,class ForwardIt2,class BinaryOperation>    ForwardIt2 inclusive_scan(ExecutionPolicy&& exec,                              ForwardIt1 first, ForwardIt1 last,                              ForwardIt2 result,                              BinaryOperation binary_op);template<class ExecutionPolicy,class ForwardIt1,class ForwardIt2,class BinaryOperation,class T>    ForwardIt2 inclusive_scan(ExecutionPolicy&& exec,                              ForwardIt1 first, ForwardIt1 last,                              ForwardIt2 result,                              BinaryOperation binary_op, T init); // transform exclusive scantemplate<class InputIt,class OutputIt,class T,class BinaryOperation,class UnaryOperation>constexpr OutputIt transform_exclusive_scan(InputIt first, InputIt last,                                                OutputIt result,                                                T init,                                                BinaryOperation binary_op,                                                UnaryOperation unary_op);template<class ExecutionPolicy,class ForwardIt1,class ForwardIt2,class T,class BinaryOperation,class UnaryOperation>    ForwardIt2 transform_exclusive_scan(ExecutionPolicy&& exec,                                        ForwardIt1 first, ForwardIt1 last,                                        ForwardIt2 result,                                        T init,                                        BinaryOperation binary_op,                                        UnaryOperation unary_op); // transform inclusive scantemplate<class InputIt,class OutputIt,class BinaryOperation,class UnaryOperation>constexpr OutputIt transform_inclusive_scan(InputIt first, InputIt last,                                                OutputIt result,                                                BinaryOperation binary_op,                                                UnaryOperation unary_op);template<class InputIt,class OutputIt,class BinaryOperation,class UnaryOperation,class T>constexpr OutputIt transform_inclusive_scan(InputIt first, InputIt last,                                                OutputIt result,                                                BinaryOperation binary_op,                                                UnaryOperation unary_op,                                                T init);template<class ExecutionPolicy,class ForwardIt1,class ForwardIt2,class BinaryOperation,class UnaryOperation>    ForwardIt2 transform_inclusive_scan(ExecutionPolicy&& exec,                                        ForwardIt1 first, ForwardIt1 last,                                        ForwardIt2 result,                                        BinaryOperation binary_op,                                        UnaryOperation unary_op);template<class ExecutionPolicy,class ForwardIt1,class ForwardIt2,class BinaryOperation,class UnaryOperation,class T>    ForwardIt2 transform_inclusive_scan(ExecutionPolicy&& exec,                                        ForwardIt1 first, ForwardIt1 last,                                        ForwardIt2 result,                                        BinaryOperation binary_op,                                        UnaryOperation unary_op,                                        T init); // adjacent differencetemplate<class InputIt,class OutputIt>constexpr OutputIt adjacent_difference(InputIt first, InputIt last,                                           OutputIt result);template<class InputIt,class OutputIt,class BinaryOperation>constexpr OutputIt adjacent_difference(InputIt first, InputIt last,                                           OutputIt result,                                           BinaryOperation binary_op);template<class ExecutionPolicy,class ForwardIt1,class ForwardIt2>    ForwardIt2 adjacent_difference(ExecutionPolicy&& exec,                                   ForwardIt1 first, ForwardIt1 last,                                   ForwardIt2 result);template<class ExecutionPolicy,class ForwardIt1,class ForwardIt2,class BinaryOperation>    ForwardIt2 adjacent_difference(ExecutionPolicy&& exec,                                   ForwardIt1 first, ForwardIt1 last,                                   ForwardIt2 result,                                   BinaryOperation binary_op); // iotatemplate<class ForwardIt,class T>constexprvoid iota(ForwardIt first, ForwardIt last, T value); namespace ranges{template<class O,class T>using iota_result= out_value_result<O, T>; template<input_or_output_iterator O, sentinel_for<O> S, weakly_incrementable T>      requires indirectly_writable<O,const T&>constexpr iota_result<O, T> iota(O first, S last, T value); template<weakly_incrementable T, output_range<const T&> R>constexpr iota_result<borrowed_iterator_t<R>, T> iota(R&& r, T value);} // greatest common divisortemplate<class M,class N>constexpr common_type_t<M, N> gcd(M m, N n); // least common multipletemplate<class M,class N>constexpr common_type_t<M, N> lcm(M m, N n); // midpointtemplate<class T>constexpr T midpoint(T a, T b)noexcept;template<class T>constexpr T* midpoint(T* a, T* b); // saturation arithmetictemplate<class T>constexpr T add_sat(T x, T y)noexcept;// freestandingtemplate<class T>constexpr T sub_sat(T x, T y)noexcept;// freestandingtemplate<class T>constexpr T mul_sat(T x, T y)noexcept;// freestandingtemplate<class T>constexpr T div_sat(T x, T y)noexcept;// freestandingtemplate<class T,class U>constexpr T saturate_cast(U x)noexcept;// freestanding}
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/header/numeric&oldid=163892"

      [8]ページ先頭

      ©2009-2025 Movatter.jp