📅  最后修改于: 2023-12-03 15:07:52.429000             🧑  作者: Mango
在C++中,使用标准模板库(STL)可以方便地查找数组中的奇数和偶数元素。本文将介绍如何使用STL实现这一功能。
我们可以使用STL提供的std::find_if
和std::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