博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++STL算法
阅读量:4153 次
发布时间:2019-05-25

本文共 1753 字,大约阅读时间需要 5 分钟。

说完了排序算法接下来就剩下数值算法(numeric algorithms).

iota

将一组递增的值赋值给迭代器区间内的元素

#include <numeric>

#include <algorithm>

#include <iostream>

using namespace std;

void print(int x){

       cout << x << ' ';

}

int main(void){

       int iArray[10];

       iota(iArray, iArray+10, 0);

       for_each(iArray, iArray+10, print);

       cout << endl;

       return 0;

}

accumulate

可以将区间的元素进行累计求和,或者你可以DIY一个累计求积之类的功能

#include <numeric>

#include <iostream>

using namespace std;

int multiply(int x, int y){

       return x * y;

}

int main(void){

       int iArray[5]={1, 2, 3, 4, 5};

       cout << "数组iArray的元素和为"

              << accumulate(iArray, iArray+5, 0)

              << endl;

       cout << "数组iArray的元素乘积为"

              << accumulate(iArray, iArray+5, 1, multiply)

              << endl;

       return 0;

}

inner_product

对两个区间内的元素进行累积计算,类似于上面也可以自己DIY一些功能出来

#include <numeric>

#include <iostream>

int add(int x, int y){

       return x + y;

}

int mul(int x, int y){

       return x * y;

}

int main(void){

       using namespace std;

       int iArray1[3]={2, 5, 4};

       int iArray2[3]={10, 6, 5};

       //用原型1计算内积

       int result=inner_product(iArray1, iArray1 + 3, iArray2, 0);

       cout << "数组iArray1与数组iArray2的内积为" << result << endl;

       //用原型2计算内积

       result=inner_product(iArray1, iArray1 +3, iArray2, 0, add, mul);

       cout << "数组iArray1与数组iArray2的内积为" << result << endl;

       return 0;

}

partial_sum

对区间元素进行局部求和,当然也支持DIY

#include <numeric>

#include <algorithm>

#include <iostream>

using namespace std;

void print(int x){

       cout << x << ' ';

}

int multiply(int x, int y){

       return x * y;

}

int main(void){

       int iArray[5]={1, 2, 3, 4, 5};

       int iResult[5];

       //求和

       partial_sum(iArray, iArray+5, iResult);

       for_each(iResult, iResult+5, print);

       cout << endl;

       //计算阶乘

       partial_sum(iArray, iArray+5, iResult, multiply);

       for_each(iResult, iResult+5, print);

       cout << endl;

       return 0;

}

adjacent_difference

对相邻元素求差

power

用于进行n次方的计算

v1.insert(v1.end(), v2.begin(), v2.end() );

转载:

你可能感兴趣的文章
ORACLE批量绑定FORALL与BULK COLLECT
查看>>
oracle 管道化表函数(Pipelined Table)
查看>>
oracle提高查询效率
查看>>
Oracle分组函数之ROLLUP魅力
查看>>
Oracle分组函数之CUBE魅力
查看>>
PL/SQL开发中动态SQL的使用与过程分页
查看>>
取消正在运行的存储过程
查看>>
oracle 索引
查看>>
Oracle硬解析与软解析
查看>>
Oracle SGA
查看>>
Oracle执行计划详解
查看>>
执行计划执行顺序
查看>>
ORACLE优化器
查看>>
js闭包
查看>>
Oracle动态性能表(1)-V$SQLAREA
查看>>
Oracle动态性能表-(2)-V$SQLTEXT
查看>>
Oracle动态性能表-(3)-V$SYSSTAT
查看>>
Oracle动态性能表-(4)-V$SESSTAT
查看>>
Paper-Reading
查看>>
实习遇到的坑....
查看>>