stl-stable_sort源码学习笔记
前几天,一个新同事前来询问算法stl-stable_sort的情况。由于离上次研读stl源码时间久已(两三年前的事儿了),有些细节笔记模糊了。所以就找了sgi-stl和ms-stl俩版本,重新复习一遍其中的stl-stable_sort算法。稍微简单整理了阅读笔记,主要裁剪sgi-stl源码的“伪代码”,顺便加些注释还可看懂一二!sgi-stl 可读性笔记强。 事后,和新同事们讲解,分享该算法的内在,主要想说明区别于通用型的std::sort。 希望贴出来,对于一些新学者有点用处! --- Title: [stl-stable_sort源码学习笔记] ===== begin ===== STL算法 (稳定)在位排序 stable_sort(__first, __last) { // 关键点1:申请排序缓冲区 _Temporary_buffer<_RandomAccessIter, _Tp> buf(__first, __last); if (buf.begin() == 0) __inplace_stable_sort(__first, __last);//若缓冲区为空则内部排序。 else __stable_sort_adaptive(__first, __last, buf.begin(), _Distance(buf.size()));//转调 } =====>>>>>