参考:
函数模版:
template <class BidirectionalIterator, class UnaryPredicate>
BidirectionalIterator stable_partition (
BidirectionalIterator first,
BidirectionalIterator last,
UnaryPredicate pred);
稳定排序,将原来的范围划分成两部分。重新将[first,last)中的元素排序,所有符合一元谓词条件的返回true,不符合的返回false。和std::partition不同的是,stable_partition是稳定的,保持原有元素的相对顺序。
first,last:
指向序列中初始及最后元素的位置的双向迭代器(bidirectional iterator),范围是集合[first,last),即包括first,但不包括last,并且包括其他first到last的所有元素。
pred:
一元谓词就是返回bool类型(true或false)的一元表达式或者一元函数(Unary function)。
接受范围中的一个元素作为实参,返回bool类型的一个值,将所有返回true的元素放在返回false元素的前面,该一元函数不能修改其参数,可以是函数对象类型(function object)或者是函数指针类型(