STL-power算法实现
来源:互联网 发布:2017淘宝客服工作计划 编辑:程序博客网 时间:2024/06/15 21:31
晚上重新看《STL源码剖析》,看到power的实现时觉得很有意思,遂想记录一下。
一般情况下,在计算power时都会有个初值,通常为1,但泛型算法的值并不一定是POD类型,最常见的是class和struct类型,在处理这一类型时初值则不能为1。
STL中有个很巧妙的处理技巧,规避了这类问题。下面来看代码:
<span style="font-family:KaiTi_GB2312;font-size:18px;">template <class T, class Integer, class MonoidOperation>T power(T x, Integer n, MonoidOperation op) {if(n == 0)return identity_element(op);//可忽略此处else {//精华在此:先处理n的二进制后几位为0的情况,//以解决T是一个不嗯呢该直接赋值为1的类型while( (n&1) == 0) {n >>= 1;x = op(x, x);}T result = x;n >> = 1;while(n != 0) {x = op(x, x);if( (n&1) != 0)result = op(result, x);n >> = 1;}return result;} }</span>
0 0
- STL-power算法实现
- STL power实现
- STL 中的 power 函数实现
- STL源码分析之power算法
- STL源码分析之power算法
- STL算法实现
- 《STL源码剖析》学习--6章--power算法分析
- Dijkstra算法的STL实现
- STL算法实现 多项式加法
- 【STL源码剖析读书笔记】【第6章】算法之power算法
- poj 1459 Power Network : 最大网络流 dinic算法实现
- STL常用算法的实现----小话STL(1)
- STL系列之七 快速计算x的n次幂 power()的实现
- STL系列之七 快速计算x的n次幂 power()的实现
- STL系列之七 快速计算x的n次幂 power()的实现
- STL系列之七 快速计算x的n次幂 power()的实现
- STL系列 快速计算x的n次幂 power()的实现
- STL系列之七 快速计算x的n次幂 power()的实现
- JavaSE入门学习50:多线程编程(一)
- finished with non-zero exit value 1
- 【前端】JS 实现 unicode 中文互转
- java枚举使用详解
- FPGA基础之锁存器与触发器的设计
- STL-power算法实现
- SMO算法总结
- cheet 6 深搜和广搜
- 【VS开发】【Linux开发】【DSP开发】如何截获以太网帧并解析
- 多线程下载,断点续传原理解析和代码实现
- 结构体进程描述进程
- 为什么UI线程是不安全线程
- 用IO流的知识将两个文件写到一个文件中(设置字符编码)
- SwipeRefreshLayout 源码