资源预览内容
第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
亲,该文档总共3页全部预览完了,如果喜欢就下载吧!
资源描述
C+ partitiontemplate BidirectionalIterator partition ( BidirectionalIterator first,BidirectionalIterator last, Predicate pred );Partition range in twoRearranges the elements in the range first,last), in such a way that all the elements for which pred returns true precede all those for which it returns false. The iterator returned points to the first element of the second group. The relative ordering within each group is not necessarily the same as before the call. See function stable_partition for a function with a similar behavior and stability in the the ordering. The behavior of this function template is equivalent to:template BidirectionalIterator partition ( BidirectionalIterator first,BidirectionalIterator last, Predicate pred )while (first!=last)-last;while (first!=last & pred(*first) +first;while (first!=last & !pred(*last) -last;if (first!=last) swap (*first+,*last);return first;Parametersfirst, last Bidirectional iterators to the initial and final positions of the sequence to be partitioned. The range used is first,last), which contains all the elements between first and last, including the element pointed by first but not the element pointed by last. pred Unary predicate taking an element in the range as argument, and returning a value indicating the falsehood (with false, or a zero value) or truth (true, or non-zero) of some condition applied to it. This can either be a pointer to a function or an object whose class overloads operator(). Return valuenone Example/ partition algorithm example#include #include #include using namespace std;bool IsOdd (int i) return (i%2)=1; int main () vector myvector;vector:iterator it, bound;/ set some values:for (int i=1; i10; +i) myvector.push_back(i); / 1 2 3 4 5 6 7 8 9bound = partition (myvector.begin(), myvector.end(), IsOdd);/ print out content:cout odd members:;for (it=myvector.begin(); it!=bound; +it)cout *it;cout neven members:;for (it=bound; it!=myvector.end(); +it)cout *it;cout endl; return 0;A possible output:odd members: 1 9 3 7 5even members: 6 4 8 2ComplexityAs many applications of pred as the length of the range first,last) plus up to half as many swap operations (worst-case). See alsoreverse Reverse range (function template)rotate Rotate elements in range (function template)find_if Find element in range (function template)swap Exchange values of two objects (function template)
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号