STL rotate的random access iterator版本

最近在看《STL源码剖析》,读到了Algorithm 中rotate的实现部分,对于random access iterator版本的算法存在疑问,查找了资料进行汇总,整理如下。

本质上是一个数学问题,通过求最大公因子,建立一系列循环链,链上的元素一步到位,直接放在旋转后**应该 **在的位置,使得该算法无需额外的空间复杂度。

为了方便理解,写了段小程序对旋转的过程进行说明和解释,参见STL rotate test

原文地址:https://www.cnblogs.com/mengmz/p/8214815.html