编写一个函数来连接两个动态整数数组的内容。函数应包含两个数组的引用指针和两个数组的大小。函数应返回一个指向新数组的指针,新数组包含两个数组元素的副本。使用驱动程序测试您的函数。
时间: 2024-10-03 07:01:55 浏览: 23
js代码-给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
为了编写一个函数来连接两个动态整数数组,我们可以创建一个新的数组,其大小等于输入数组之和,然后依次将每个源数组的元素复制到新数组中。下面是一个简单的C++示例:
```cpp
#include <iostream>
#include <vector>
// 动态数组连接函数
std::vector<int>* concatenateArrays(std::vector<int>** arr1, int size1, std::vector<int>** arr2, int size2) {
// 检查输入是否为空
if (arr1 == nullptr || arr2 == nullptr || !size1 || !size2) {
return nullptr;
}
// 创建一个新的动态数组,容量为两数组之和
std::vector<int>* result = new std::vector<int>(size1 + size2);
// 将第一个数组的元素复制到结果数组
for (int i = 0; i < size1; ++i) {
result->push_back(**arr1[i]);
}
// 将第二个数组的元素追加到结果数组
for (int i = 0; i < size2; ++i) {
result->push_back(**arr2[i]);
}
return result;
}
// 驱动程序测试
int main() {
std::vector<int> array1{1, 2, 3};
std::vector<int> array2{4, 5};
std::vector<int>** ptr1 = &array1;
std::vector<int>** ptr2 = &array2;
std::vector<int>* combinedArray = concatenateArrays(ptr1, array1.size(), ptr2, array2.size());
if (combinedArray != nullptr) {
for (const auto& element : *combinedArray) {
std::cout << element << " ";
}
delete combinedArray; // 释放内存
} else {
std::cout << "Failed to create the combined array.\n";
}
return 0;
}
```
在这个例子中,`concatenateArrays`函数接收两个数组指针及其长度,并创建一个新的数组将它们合并。主函数作为驱动器展示了如何使用这个函数,并在完成后删除了临时分配的新数组。
阅读全文