阅读量:0
假设我们有一个数组,我们想要将所有正数移动到数组的前半部分,将所有负数移动到数组的后半部分。我们可以使用C++的partition函数来实现这个功能。
#include <iostream> #include <algorithm> int main() { int arr[] = {3, -2, 5, -1, 7, -4, 9, -6}; int n = sizeof(arr) / sizeof(arr[0]); std::partition(arr, arr + n, [](int x) { return x > 0; }); std::cout << "After partitioning:" << std::endl; for (int i = 0; i < n; i++) { std::cout << arr[i] << " "; } std::cout << std::endl; return 0; }
在上面的示例中,我们使用std::partition
函数将正数移动到数组的前半部分,负数移动到数组的后半部分。最终输出的结果为:
After partitioning: 3 9 5 7 -1 -4 -2 -6
可以看到,所有正数都被移动到了数组的前半部分,所有负数都被移动到了数组的后半部分。