C++ partition

上传人:飞*** 文档编号:5924588 上传时间:2017-09-08 格式:DOCX 页数:3 大小:18.01KB
返回 下载 相关 举报
C++ partition_第1页
第1页 / 共3页
C++ partition_第2页
第2页 / 共3页
C++ partition_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《C++ partition》由会员分享,可在线阅读,更多相关《C++ partition(3页珍藏版)》请在金锄头文库上搜索。

1、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 retur

2、ns 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 functi

3、on 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

4、;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

5、 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/

6、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(), I

7、sOdd);/ 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)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号