函数 | 功能 |
---|---|
partition | 将元素划分为两个集合 |
is_partitioned | 测试集合是否被划分 |
stable_partition | 将元素划分为两个集合,保持元素的相对顺序 |
partition_copy | 将元素划分为两个集合 |
partition_point | 获取划分点 |
partition
ForwardIterator partition (ForwardIterator first, ForwardIterator last, UnaryPredicate pred);
first,last表示元素范围[first,last);
pred:表示分组条件,它是一个一元函数,也可以是函数指针或函数对象。
返回值是一个迭代器,指向第二个元素组的第一个元素;如果这个组是空的,则是最后一个元素。
example
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
bool isOdd(int i){ return (i % 2) == 1; }
int main()
{
vector<int> myvector;
for (int i = 1; i < 10; ++i) myvector.push_back(i);
vector<int>::iterator bound;
bound = partition(myvector.begin(), myvector.end(), isOdd);
cout << "odd element:";
for (vector<int>::iterator it = myvector.begin(); it != bound; ++it)
cout << " " << *it;
cout << "\n";
cout << "even element:";
for (vector<int>::iterator it = bound; it != myvector.end(); ++it)
cout << " " << *it;