阅读量:0
在C++中,可以使用标准库中的std::partition
函数来实现partition算法。std::partition
函数接受一个范围的迭代器和一个谓词函数作为参数,并根据谓词函数将范围分割为两部分,使得满足谓词函数的元素在前半部分,不满足谓词函数的元素在后半部分。以下是一个示例代码:
#include <iostream> #include <vector> #include <algorithm> bool isEven(int n) { return n % 2 == 0; } int main() { std::vector<int> nums = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; std::partition(nums.begin(), nums.end(), isEven); std::cout << "Partitioned array: "; for (int num : nums) { std::cout << num << " "; } return 0; }
在上面的示例中,我们定义了一个isEven
函数用来判断一个整数是否为偶数。然后我们使用std::partition
函数将nums
数组按照isEven
函数进行分割,使得偶数在前半部分,奇数在后半部分。最后输出分割后的结果。