📌  相关文章
📜  在C++中使用STL查找奇数和偶数的数组元素(1)

📅  最后修改于: 2023-12-03 15:07:52.429000             🧑  作者: Mango

在C++中使用STL查找奇数和偶数的数组元素

在C++中,使用标准模板库(STL)可以方便地查找数组中的奇数和偶数元素。本文将介绍如何使用STL实现这一功能。

使用STL查找奇数和偶数

我们可以使用STL提供的std::find_ifstd::count_if函数来查找奇数和偶数。需要用到一个谓词函数,用于判断当前元素是否符合条件。

下面是一个示例代码,实现在一个长度为10的整型数组中查找奇数和偶数元素及其个数。

#include <iostream>
#include <algorithm> // 需要 include algorithm 头文件
#include <vector>    // 可选

int main() {
    int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

    // 查找奇数元素及其个数
    int oddCount = std::count_if(arr, arr + 10, [](int i) { return i % 2 == 1; });
    std::vector<int> odd(oddCount);
    std::copy_if(arr, arr + 10, odd.begin(), [](int i) { return i % 2 == 1; });

    // 查找偶数元素及其个数
    int evenCount = std::count_if(arr, arr + 10, [](int i) { return i % 2 == 0; });
    std::vector<int> even(evenCount);
    std::copy_if(arr, arr + 10, even.begin(), [](int i) { return i % 2 == 0; });

    std::cout << "奇数个数:" << oddCount << ", 分别为:";
    for (auto i : odd) {
        std::cout << i << " ";
    }
    std::cout << std::endl;

    std::cout << "偶数个数:" << evenCount << ", 分别为:";
    for (auto i : even) {
        std::cout << i << " ";
    }
    std::cout << std::endl;

    return 0;
}

首先,我们使用std::count_if函数分别统计数组中奇数和偶数的个数,并根据个数创建了两个容器:std::vector。然后,我们使用std::copy_if函数将符合条件的元素拷贝到相应的容器中。最后,我们遍历容器,并输出其包含的元素。

运行结果:

奇数个数:5, 分别为:1 3 5 7 9 
偶数个数:5, 分别为:2 4 6 8 10