假設我們有一個數組,我們想要將所有正數移動到數組的前半部分,將所有負數移動到數組的后半部分。我們可以使用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
可以看到,所有正數都被移動到了數組的前半部分,所有負數都被移動到了數組的后半部分。