partition可以根据指定条件,把容器中的元素分成两组,返回第二组中第一个元素在已完成分组中的位置;patition是不稳定分组,stable_partition是稳定分组。
#include <algorithm>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
bool comp(int i) { return i >= 5; }
int main()
{
vector<int> v{ 1,9,2,8,3,7,4,6,5 };
auto it = partition(v.begin(), v.end(), comp);
cout << "v[" << it - v.begin() << "]=" << *it << endl;
for (auto item : v)
cout << item << "->";
cout << endl;
return 0;
}
输出结果:
v[5]=3
5->9->6->8->7->3->4->2->1->