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

   2024-10-01 7980
核心提示:假设我们有一个数组,我们想要将所有正数移动到数组的前半部分,将所有负数移动到数组的后半部分。我们可以使用C++的partition函

假设我们有一个数组,我们想要将所有正数移动到数组的前半部分,将所有负数移动到数组的后半部分。我们可以使用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 

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

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号