c++中如何将两个数组合并成一个数组
时间: 2024-09-25 20:06:48 浏览: 58
在 C++ 中,可以使用标准库函数`std::merge()`或者通过循环遍历两个数组并逐个添加元素到新的数组来合并两个已排序数组。这里我会提供两种常见方法:
1. 使用 `std::merge()`: 如果你的两个数组已经排好序,并且你知道它们的长度,可以使用`<algorithm>`头文件中的`std::merge()`函数。这是一个通用方法,适用于已排序数组。
```cpp
#include <algorithm>
#include <vector>
void mergeArrays(const std::vector<int>& arr1, const std::vector<int>& arr2, std::vector<int>& result) {
result.reserve(arr1.size() + arr2.size()); // 预先分配足够的空间
std::merge(arr1.begin(), arr1.end(), arr2.begin(), arr2.end(), result.begin());
}
```
在这个例子中,`result`将会是一个新合并的、按升序排列的数组。
2. 直接遍历合并: 如果不需要保持原始顺序或者不确定数组是否已排序,你可以直接创建一个新的数组并逐个添加元素。
```cpp
std::vector<int> mergeArraysIterative(const std::vector<int>& arr1, const std::vector<int>& arr2) {
std::vector<int> merged;
merged.reserve(arr1.size() + arr2.size());
for (const auto& elem : arr1) {
merged.push_back(elem);
}
for (const auto& elem : arr2) {
merged.push_back(elem);
}
return merged; // 返回合并后的数组
}
```