利用C++ partition解决实际问题案例

avatar
作者
猴君
阅读量: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  

可以看到,所有正数都被移动到了数组的前半部分,所有负数都被移动到了数组的后半部分。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!