STL数学算法及堆排序算法

本文详细介绍了C++标准模板库(STL)中的数值算法,包括累加、相邻差分、内积、部分和等操作的具体实现方式,并对堆排序算法进行了深入解析。适合希望深入了解STL内部机制及高效利用其进行数据处理的读者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 数字算法:<numeric>
算法说明
T accumulate(InIt first,InIt last, T val); 返回[first,last)所有元素相加后与val的和
T accumulate(InIt first,InIt last, T val, Pred pr); 对[first,last)的元素依次递归调用pr,Vn=pr(Vn-1,Ai),V0=T;
OutIt adjacent_difference(InIt first,InIt last,OutIt result); 对[first,last)的元素依次执行Vi=Ai+1-Ai,Vi存储在result开始的容器里,返回目标区间最后一个元素的下一个位置
OutIt adjacent_difference(InIt first,InIt last,OutIt result, Pred pr); 对[first,last)的元素依次执行Vi=pr(Ai+1-Ai),Vi存储在result开始的容器里,返回目标区间最后一个元素的下一个位置
T inner_product(InIt1 first1,InIt1 last1,Init2 first2, T val); 对[first1,last1)上的元素Ai,[first2,last2)的元素Bi,递归执行Ti=pr1(Ti-1,pr(Ai,Bi)),其中T-1=val,返回最后T的值,第一种形式 为 ∑A i B i
T inner_product(InIt1 first1,InIt1 last1,Init2 first2, T val, Pred1 pr1, Pred2 pr2);
OutIt partial_sum(InIt first,InIt last,OutIt result); Ri= ∑Aj (0~i),把Ri存储到result开始的位置,返回目标区间最后一个元素的下个位置
OutIt partial_sum(InIt first,InIt last,OutIt result, Pred pr); Ri=pr(Ri-1,Ai),其中R0=*first, 把Ri存储到result开始的位置,返回目标区间最后一个元素的下个位置


堆排序算法:

void make_heap(RanIt first, RanIt last);
void make_heap(RanIt first, RanIt last, Pred pr);
用[first,last)之间的元素生成一个堆,pr是用于比较数值的二元函数
void sort_heap(RanIt first, RanIt last);
void sort_heap(RanIt first, RanIt last, Pred pr);
堆排序[first,last)之间的数值序列,pr指定比较数值的二元判定函数
void push_heap(RanIt first, RanIt last);
void push_heap(RanIt first, RanIt last, Pred pr);
 
void pop_heap(RanIt first, RanIt last);
void pop_heap(RanIt first, RanIt last, Pred pr);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值