Объединение двух одномерных массивов в C++
Когда возникает необходимость объединить два одномерных массива разных по размерности в третий массив, можно воспользоваться различными методами. В этой статье мы рассмотрим простой и эффективный подход для выполнения данной задачи на языке программирования C++.
Использование стандартных библиотек
Стандартная библиотека C++ предоставляет набор функций и контейнеров, которые могут быть использованы для объединения двух массивов.
Вариант 1: Использование std::vector
Один из способов объединить два массива заключается в использовании контейнера std::vector
. Вектор позволяет динамически изменять свой размер и удобен для работы с массивами разной размерности.
#include <iostream>
#include <vector>
int main() {
std::vector<int> array1 = {1, 2, 3};
std::vector<int> array2 = {4, 5, 6, 7};
std::vector<int> mergedArray;
mergedArray.insert(mergedArray.end(), array1.begin(), array1.end());
mergedArray.insert(mergedArray.end(), array2.begin(), array2.end());
for (const auto& element : mergedArray) {
std::cout << element << " ";
}
return 0;
}
Вариант 2: Использование std::array
Если вы хотите использовать статический размер массива и имеете предварительно известное максимальное количество элементов в объединенном массиве, то можно воспользоваться контейнером std::array
.
#include <iostream>
#include <array>
constexpr int MAX_SIZE = 10;
int main() {
std::array<int, MAX_SIZE> array1 = {1, 2, 3};
std::array<int, MAX_SIZE> array2 = {4, 5, 6, 7};
std::array<int, MAX_SIZE> mergedArray;
int index = 0;
for (const auto& element : array1) {
mergedArray[index++] = element;
}
for (const auto& element : array2) {
mergedArray[index++] = element;
}
for (const auto& element : mergedArray) {
std::cout << element << " ";
}
return 0;
}
Использование обычных массивов
Если вы хотите использовать обычные массивы C, вы можете воспользоваться циклами для объединения двух массивов в третий массив.
#include <iostream>
constexpr int MAX_SIZE = 10;
int main() {
int array1[] = {1, 2, 3};
int array2[] = {4, 5, 6, 7};
int mergedArray[MAX_SIZE];
int index = 0;
for (int i = 0; i < sizeof(array1) / sizeof(array1[0]); ++i) {
mergedArray[index++] = array1[i];
}
for (int i = 0; i < sizeof(array2) / sizeof(array2[0]); ++i) {
mergedArray[index++] = array2[i];
}
for (int i = 0; i < index; ++i) {
std::cout << mergedArray[i] << " ";
}
return 0;
}
Это лишь один из примеров, как можно объединить два одномерных массива разной размерности в третий массив на языке программирования C++. В зависимости от ваших потребностей и предпочтений, вы можете выбрать наиболее подходящий подход для вашей задачи.