如何在C++中实现partition算法

c++
1086
2024/8/19 21:30:55
栏目: 编程语言
开发者测试专用服务器限时活动,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函数进行分割,使得偶数在前半部分,奇数在后半部分。最后输出分割后的结果。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: C++ stoll和stoi的使用场景有何不同