将[First, Last)区间中令_Pred(elem)为true的元素向前移动
返回令_Pred为false的第一个元素位置.
将[First, Last)区间中令_Pred(elem)为true的元素向前移动
返回令_Pred为false的第一个元素位置.
两者差别是:不管元素是否满足给定准则,stable_partition会保持它们之间的相对次序
复杂度:partition():线性,共执行_Pred()numElems次,以及最多numElems/2次交换.
stable_partition:如果系统拥有足够内存,那么就是线性复杂度,执行_Pred()及交换共numElems次,如果没有足够内存,就是nlogn复杂度,执行_Pred()numElems X log(numElems)次
使用例子:
template<typename T>
inline void INSERT_ELEMENTS(T& coll, int first, int last)
{
for (int i = first;