如何使用C++实现一个将整数数组按奇数和偶数分别分组的功能?
时间: 2024-10-28 19:08:54 浏览: 34
在C++中,可以使用迭代器和一对模板函数来实现这个功能。这里是一个简单的示例,它创建两个空容器(如vector),然后遍历输入数组,根据元素的奇偶性分别添加到对应的容器中:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
// 函数模板用于将整数数组分割成偶数和奇数两部分
template<typename T, typename OutputContainer>
void separateEvenOdd(const std::vector<T>& inputArray, OutputContainer& evenContainer, OutputContainer& oddContainer) {
for (const auto& num : inputArray) {
if (num % 2 == 0)
evenContainer.push_back(num);
else
oddContainer.push_back(num);
}
}
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<int> evens;
std::vector<int> odds;
separateEvenOdd(numbers, evens, odds);
// 打印结果
std::cout << "Even numbers: ";
for (const auto& num : evens)
std::cout << num << " ";
std::cout << "\nOdd numbers: ";
for (const auto& num : odds)
std::cout << num << " ";
return 0;
}
```
在这个例子中,`separateEvenOdd`函数接受一个整数向量、两个输出容器(`evens`和`odds`),然后遍历输入数组,如果数字是偶数,则添加到`evens`,如果是奇数则添加到`odds`。
阅读全文