MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
数值算法

MSTL数值算法的实现 更多...

函数

template<typename Iterator, typename T, typename BinaryOperation, enable_if_t< is_ranges_input_iter_v< Iterator >, int > = 0>
MSTL_CONSTEXPR20 T accumulate (Iterator first, Iterator second, T init, BinaryOperation binary_op)
 累积计算
template<typename Iterator, typename T>
MSTL_CONSTEXPR20 T accumulate (Iterator first, Iterator second, T init)
 累积计算
template<typename Iterator1, typename Iterator2, typename BinaryOperation, enable_if_t< is_ranges_input_iter_v< Iterator1 > &&is_ranges_input_iter_v< Iterator2 >, int > = 0>
MSTL_CONSTEXPR20 Iterator2 adjacent_difference (Iterator1 first, Iterator1 last, Iterator2 result, BinaryOperation binary_op)
 相邻差分计算
template<typename Iterator1, typename Iterator2>
MSTL_CONSTEXPR20 Iterator2 adjacent_difference (Iterator1 first, Iterator1 last, Iterator2 result)
 相邻差分计算
template<typename Iterator1, typename Iterator2, typename T, typename BinaryOperation1, typename BinaryOperation2, enable_if_t< is_ranges_input_iter_v< Iterator1 > &&is_ranges_input_iter_v< Iterator2 >, int > = 0>
MSTL_CONSTEXPR20 T inner_product (Iterator1 first1, Iterator1 last1, Iterator2 first2, T init, BinaryOperation1 binary_op1, BinaryOperation2 binary_op2)
 内积计算
template<typename Iterator1, typename Iterator2, typename T>
MSTL_CONSTEXPR20 T inner_product (Iterator1 first1, Iterator1 last1, Iterator2 first2, T init)
 内积计算
template<typename Iterator1, typename Iterator2, typename BinaryOperation, enable_if_t< is_ranges_input_iter_v< Iterator1 > &&is_ranges_input_iter_v< Iterator2 >, int > = 0>
MSTL_CONSTEXPR20 Iterator2 partial_sum (Iterator1 first, Iterator1 last, Iterator2 result, BinaryOperation binary_op)
 部分和计算
template<typename Iterator1, typename Iterator2>
MSTL_CONSTEXPR20 Iterator2 partial_sum (Iterator1 first, Iterator1 last, Iterator2 result)
 部分和计算
template<typename Iterator, typename T, enable_if_t< is_ranges_input_iter_v< Iterator >, int > = 0>
MSTL_CONSTEXPR20 void sequence_fill (Iterator first, Iterator last, T value)
 顺序填充递增序列

详细描述

MSTL数值算法的实现

函数说明

◆ accumulate() [1/2]

template<typename Iterator, typename T>
MSTL_CONSTEXPR20 T accumulate ( Iterator first,
Iterator second,
T init )

累积计算

模板参数
Iterator输入迭代器类型
T初始值类型
参数
first范围起始迭代器
second范围结束迭代器
init初始值
返回
所有元素与初始值的和

默认使用加法运算的累积计算。

在文件 numeric.hpp56 行定义.

引用了 _MSTL , 以及 accumulate().

◆ accumulate() [2/2]

template<typename Iterator, typename T, typename BinaryOperation, enable_if_t< is_ranges_input_iter_v< Iterator >, int > = 0>
MSTL_CONSTEXPR20 T accumulate ( Iterator first,
Iterator second,
T init,
BinaryOperation binary_op )

累积计算

模板参数
Iterator输入迭代器类型
T初始值类型
BinaryOperation二元操作类型
参数
first范围起始迭代器
second范围结束迭代器
init初始值
binary_op二元操作函数对象
返回
累积计算的结果

对范围 [first, second) 中的元素执行累积计算

在文件 numeric.hpp37 行定义.

被这些函数引用 accumulate().

◆ adjacent_difference() [1/2]

template<typename Iterator1, typename Iterator2>
MSTL_CONSTEXPR20 Iterator2 adjacent_difference ( Iterator1 first,
Iterator1 last,
Iterator2 result )

相邻差分计算

模板参数
Iterator1输入迭代器类型
Iterator2输出迭代器类型
参数
first输入范围起始迭代器
last输入范围结束迭代器
result输出范围起始迭代器
返回
输出范围结束迭代器

默认使用减法运算的相邻差分计算。

在文件 numeric.hpp102 行定义.

引用了 _MSTL , 以及 adjacent_difference().

◆ adjacent_difference() [2/2]

template<typename Iterator1, typename Iterator2, typename BinaryOperation, enable_if_t< is_ranges_input_iter_v< Iterator1 > &&is_ranges_input_iter_v< Iterator2 >, int > = 0>
MSTL_CONSTEXPR20 Iterator2 adjacent_difference ( Iterator1 first,
Iterator1 last,
Iterator2 result,
BinaryOperation binary_op )

相邻差分计算

模板参数
Iterator1输入迭代器类型
Iterator2输出迭代器类型
BinaryOperation二元操作类型
参数
first输入范围起始迭代器
last输入范围结束迭代器
result输出范围起始迭代器
binary_op二元操作函数对象
返回
输出范围结束迭代器

计算相邻元素的差分并存储到输出范围。

在文件 numeric.hpp75 行定义.

被这些函数引用 adjacent_difference().

◆ inner_product() [1/2]

template<typename Iterator1, typename Iterator2, typename T>
MSTL_CONSTEXPR20 T inner_product ( Iterator1 first1,
Iterator1 last1,
Iterator2 first2,
T init )

内积计算

模板参数
Iterator1第一个输入迭代器类型
Iterator2第二个输入迭代器类型
T初始值类型
参数
first1第一个范围起始迭代器
last1第一个范围结束迭代器
first2第二个范围起始迭代器
init初始值
返回
两个范围的内积

默认使用乘法和加法运算的内积计算,即点积。

在文件 numeric.hpp147 行定义.

引用了 _MSTL , 以及 inner_product().

◆ inner_product() [2/2]

template<typename Iterator1, typename Iterator2, typename T, typename BinaryOperation1, typename BinaryOperation2, enable_if_t< is_ranges_input_iter_v< Iterator1 > &&is_ranges_input_iter_v< Iterator2 >, int > = 0>
MSTL_CONSTEXPR20 T inner_product ( Iterator1 first1,
Iterator1 last1,
Iterator2 first2,
T init,
BinaryOperation1 binary_op1,
BinaryOperation2 binary_op2 )

内积计算

模板参数
Iterator1第一个输入迭代器类型
Iterator2第二个输入迭代器类型
T初始值类型
BinaryOperation1第一个二元操作类型
BinaryOperation2第二个二元操作类型
参数
first1第一个范围起始迭代器
last1第一个范围结束迭代器
first2第二个范围起始迭代器
init初始值
binary_op1累积操作函数对象
binary_op2元素对操作函数对象
返回
两个范围的内积结果

计算两个范围的内积。

在文件 numeric.hpp125 行定义.

被这些函数引用 inner_product().

◆ partial_sum() [1/2]

template<typename Iterator1, typename Iterator2>
MSTL_CONSTEXPR20 Iterator2 partial_sum ( Iterator1 first,
Iterator1 last,
Iterator2 result )

部分和计算

模板参数
Iterator1输入迭代器类型
Iterator2输出迭代器类型
参数
first输入范围起始迭代器
last输入范围结束迭代器
result输出范围起始迭代器
返回
输出范围结束迭代器

默认使用加法运算的部分和计算,即前缀和。

在文件 numeric.hpp189 行定义.

引用了 _MSTL , 以及 partial_sum().

◆ partial_sum() [2/2]

template<typename Iterator1, typename Iterator2, typename BinaryOperation, enable_if_t< is_ranges_input_iter_v< Iterator1 > &&is_ranges_input_iter_v< Iterator2 >, int > = 0>
MSTL_CONSTEXPR20 Iterator2 partial_sum ( Iterator1 first,
Iterator1 last,
Iterator2 result,
BinaryOperation binary_op )

部分和计算

模板参数
Iterator1输入迭代器类型
Iterator2输出迭代器类型
BinaryOperation二元操作类型
参数
first输入范围起始迭代器
last输入范围结束迭代器
result输出范围起始迭代器
binary_op二元操作函数对象
返回
输出范围结束迭代器

计算前缀和并存储到输出范围。

在文件 numeric.hpp166 行定义.

被这些函数引用 partial_sum().

◆ sequence_fill()

template<typename Iterator, typename T, enable_if_t< is_ranges_input_iter_v< Iterator >, int > = 0>
MSTL_CONSTEXPR20 void sequence_fill ( Iterator first,
Iterator last,
T value )

顺序填充递增序列

模板参数
Iterator输出迭代器类型
T值类型
参数
first范围起始迭代器
last范围结束迭代器
value起始值

用从value开始的连续值填充范围 [first, last)。

在文件 numeric.hpp204 行定义.