C ++中的transform_inclusive_scan()函数
在本教程中,我们将讨论一个程序,以了解C++中的transform_inclusive_scan()函数。
示例
#include <iostream>
#include <vector>
using namespace std;
namespace point_input_iterator {
template <class InputItrator, class OutputItrator, class BinaryOperation, class UnaryOperation>
OutputItrator transform_inclusive_scan(InputItrator first,
InputItrator last,
OutputItrator d_first,
BinaryOperation binary_op,
UnaryOperation unary_op){
*d_first = unary_op(*first);
first++;
d_first++;
for (auto it = first; it != last; it++) {
//计算前缀和
*d_first = binary_op(unary_op(*it), *(d_first - 1));
d_first++;
}
return d_first;
}
}
int main(){
//使用vector输入元素
vector<int> InputVector{ 11, 22, 33, 44, 55, 66, 77, 88 };
vector<int> OutputVector(8);
point_input_iterator::transform_inclusive_scan(InputVector.begin(), InputVector.end(), OutputVector.begin(), [](auto xx, auto yy) {
return xx + yy;
},
[](auto xx) {
return xx * xx;
});
for (auto item : OutputVector) {
//打印输出项
cout << item << " ";
}
cout << std::endl;
return 0;
}输出结果
121 605 1694 3630 6655 11011 16940 24684
热门推荐
10 医院探望朋友祝福语简短
11 毕业祝福语简短女朋友
12 春节虎年爸妈祝福语简短
13 儿童毕业祝福语 简短6
14 开工仪式横幅祝福语简短
15 孩子日常祝福语大全简短
16 清晨寄语诗句祝福语简短
17 结婚送亲认亲祝福语简短
18 虎年喝酒拜年祝福语简短