函数原型
template<class _FwdIt, class _Pr>
_NODISCARD inline _FwdIt partition_point(_FwdIt _First, _FwdIt _Last, _Pr _Pred)
根据某个筛选规则对指定范围内的数据进行分组(即符合条件的为一组,不符合条件的为另一组),并返回两组数据之间的分界位置。
参数
- fisrt last 输入容器
- pred 可以是函数指针或函数对象或lambda表达式
函数
#include <iostream>
#include <algorithm>
#include <functional>
#include <vector>
#include <string>
#include <iterator>
#include <array>
#include <sstream>
bool isEven(int a)
{
std::cout << "a = " << a << std::endl;
return a % 2 == 0;
}
int main()
{
std::vector<int> b{ 1, 2, 3, 4, 5, 6, 7, 8 ,9 };
std::partition(std::begin(b), std::end(b), isEven);
std::copy(std::begin(b), std::end(b), std