总第38篇
本文要主梳理STL
中Lambda
表达式的定制操作及常用的基本算法的实现方式。
1.Lambda
表达式的定制
很多算法都会比较输入序列中的元素以达到排序的效果。通过定制比较的动作,就可以主算法按编程者的意图去工作 。这里我们以排序算法来说明。
普通的排序算法只能按照从小到大进行排序,很多时候并不适用。其普通排序算法的代码示例如下:
template<class RandomIterator>
void sort(RandomIterator first, RandomIterator last){
if (first >= last || first + 1 == last)
return;
if (last - first <= 20)//区间长度小于等于20的采用冒泡排序更快
return bubble_sort(first, last, pred);
auto mid = mid3(first, last - 1, pred);
auto p1 = first, p2 = last - 2;
while (p1 < p2){
while (pred(*p1, mid) && (p1