1.算术生成算法--求和accumulate算术生成算法头文件算法简介: 容器区间元素求和:accumulate 像容器中添加元素:fillaccumulate求和: accumulate(const _init _first, const _init _last, _ty _val) 形参:_first、_last --元素区间 _val --累加的起始值重载版本: accumulate(const _init _first, const _init _last, _ty _val, _fn _reduce_op) 形参:_first、_last --元素区间 _val --起始值 _reduce_op --运算规则(加、减、乘、除。。。)#include #include #include #include using namespace std;void test(){ vectorvtr; for (int i = 1; i <= 5; i++) { vtr.push_back(i); } auto sum=accumulate(vtr.begin(), vtr.end(), 0); cout < < sum= < < sum < < endl; sum=accumulate(vtr.begin(), vtr.end(), 1, multiplies()); cout < < sum= < < sum < < endl;}int main(){ test(); system(pause);} 2.算术生成算法--填充fillvoid fill(const _fwdit _first, const _fwdit _last, const _ty& _val)函数功能:容器填充形参:_first、_last --要填充的区间 _val --要填充的值#include #include #include #include using namespace std;class print{public: void operator()(int val) { cout < < val < < ; }};void test(){ vectorvtr; vtr.resize(10); fill(vtr.begin(), vtr.end(), 666); for_each(vtr.begin(), vtr.end(), print());}int main(){ test(); system(pause); return 0;} 3.常用集合算法--求交集set_intersection常用集合算法:--头文件 求交集(即两个容器相同元素部分):set_intersection() 求并集:set_union() 求差集:set_different() 求交集: _outit set_intersection(_init1 _first1, _init1 _last1, _init2 _first2, _init2 _last2, _outit _dest, _pr _pred) _outit set_intersection(_first1, _last1, _first2, _last2, _dest); 形参:_first1、_last1 --容器1的区间范围 _first2、_last2 --容器2的区间范围 _dest --结果保存起始迭代器 _pred --排序规则 返回值:返回结果的最后一个元素的下一个位置的迭代器(end)注意:求交集必须保证元素有序,默认是从小到大#include #include #include using namespace std;class print{public: void operator()(int val) { cout < < val < < ; }};void test(){ vectort1 = { 1,2,3,4,5,6 }; vectort2 = { 1,3,5,7,8,9 }; vectort3; //设置t3容器大小,min()为获取最小值 t3.resize(min(t1.size(), t2.size())); vector::iterator ret=set_intersection(t1.begin(), t1.end(), t2.begin(), t2.end(), t3.begin()); set_intersection() cout < < t1与t2的交集为: < < endl; for_each(t3.begin(), ret, print()); cout < < endl;}int main(){ test(); system(pause);} 4.常用集合算法--求并集set_union求并集:set_union(_init1 _first1, _init1 _last1, _init2 _first2, _init2 _last2, _outit _dest)set_union(_expo&&, _fwdit1 _first1, _fwdit1 _last1, _fwdit2 _first2, _fwdit2 _last2, _fwdit3 _dest,_pr _pred) 形参:_first1、_last1 --容器1的区间范围 _first2、_last2 --容器2的区间范围 _dest --结果保存起始迭代器 _pred --排序规则 返回值:返回结果的最后一个元素的下一个位置的迭代器(end)注意:求并集必须保证元素有序,默认是从小到大#include #include #include using namespace std;class print{public: void operator()(int val) { cout < < val < < ; }};void test(){ vectorv1 = { 1,3,4,6,8,9 }; vectorv2 = { 2,3,3,4,7,9,10 }; vectorv3; v3.resize(v1.size() + v2.size()); vector::iterator ret=set_union(v1.begin(), v1.end(), v2.begin(), v2.end(), v3.begin()); cout < < v1与v2的并集: < < endl; for_each(v3.begin(), ret, print());}int main(){ test(); system(pause);} 5.常用集合算法--求差集set_difference求差集:set_difference()_outit set_difference(_init1 _first1, _init1 _last1, _init2 _first2, _init2 _last2, _outit _dest)_outit set_difference(_init1 _first1, _init1 _last1, _init2 _first2, _init2 _last2, _outit _dest, _pr _pred) 形参:_first1、_last1 --容器1的区间范围 _first2、_last2 --容器2的区间范围 _dest --结果保存起始迭代器 _pred --排序规则 返回值:返回结果的最后一个元素的下一个位置的迭代器(end)注意:求差集必须保证元素有序,默认是从小到大#include #include #include using namespace std;class print{public: void operator()(int val) { cout < < val < < ; }};void test(){ vectort1 = { 1,3,5,6,7,9,10 }; vectort2 = { 2,3,5,8,10 }; //t1与t2的补集:{1,6,7,9}; --除去和t2相同的元素 //t2与t1的补集:{2,8} --除去和t1相同的元素 vectort3; //t3分配空间 t3.resize(max(t2.size(), t1.size())); auto ret = set_difference(t1.begin(), t1.end(), t2.begin(), t2.end(), t3.begin()); cout < < t1与t2的补集: < < endl; for_each(t3.begin(), ret, print()); cout < < endl; ret = set_difference(t2.begin(), t2.end(), t1.begin(), t1.end(), t3.begin()); cout < < t2与t1的补集: < < endl; for_each(t3.begin(), ret, print()); cout < < endl;}int main(){ test(); system(pause);}
led显示屏控制软件有哪些_九个led显示屏控制软件介绍
比克电池与十余家新能源供应商签订战略合作框架协议 将推进新能源行业蓬勃发展
华为与思科的战争:谁是国内ICT市场第一?
详解神经网络中反向传播和梯度下降
MB86R02“ Jade-D”的扩频时钟生成单元应用
c++之STL算法(三)
齐纳二极管的串联排列如何影响电气行为?
联通努比亚官宣 全球首款柔性屏“腕机”努比亚α,惊艳亮相MWC2019
丝杆升降机传动原理
主板电容爆浆的原因
2018年12月上海国际大数据产业展
RIM将收购Harman旗下的QNX Software
小米Max2约大咖搞大事!更持久的续航、更迷人的外观、更强大的配置、更出色的拍照
震动触觉电子设备能够改善风湿性关节炎症状
人工智能技术能够预测骨质疏松的疾病发生
三星计划2021年量产DDR5内存,最高频率可以达到6400 MT/s
锂离子电容电解液到底是用来做什么的
电液伺服系统校正禁忌
一种由亚麻线制成的晶体管
GMC Terrain的碰撞探查系统及警示设置