В C++ существует несколько способов добавить новый массив в уже существующий:
1. Использование std::vector:
std::vector - это динамический массив, который позволяет добавлять элементы в конец массива без необходимости предварительно указывать его размер. Для вставки нового массива в уже существующий можно использовать метод insert, который вставляет элементы заданного диапазона из другого контейнера по указанной позиции. Вот пример:
#include <iostream> #include <vector> int main() { std::vector<int> array1 = {1, 2, 3}; std::vector<int> array2 = {4, 5, 6}; auto it = array1.begin() + 2; // Позиция, в которую будет вставлен новый массив array1.insert(it, array2.begin(), array2.end()); for (int i : array1) { std::cout << i << " "; } return 0; }
Результат выполнения программы будет: 1 2 4 5 6 3.
2. Использование стандартных массивов:
Если вы хотите добавить новый массив в уже существующий стандартный массив, то в данном случае вам необходимо создать новый массив достаточного размера, чтобы вместить элементы из обоих массивов. Затем вы можете использовать цикл for для копирования элементов из исходных массивов в новый массив. Вот пример:
#include <iostream> int main() { int array1[3] = {1, 2, 3}; int array2[3] = {4, 5, 6}; int newArray[6]; for (int i = 0; i < 3; i++) { newArray[i] = array1[i]; } for (int i = 0; i < 3; i++) { newArray[i + 3] = array2[i]; } for (int i : newArray) { std::cout << i << " "; } return 0; }
Результат выполнения программы будет: 1 2 3 4 5 6.
3. Использование динамического выделения памяти:
Если вы хотите добавить новый массив в уже существующий массив, но не знаете его точный размер заранее, то вам придется использовать динамическое выделение памяти с помощью оператора new. Выделите память под новый массив, скопируйте элементы из обоих массивов в новый массив и освободите память, занятую исходными массивами. Вот пример:
#include <iostream> int main() { int* array1 = new int[3] {1, 2, 3}; int* array2 = new int[3] {4, 5, 6}; int newSize = 6; int* newArray = new int[newSize]; for (int i = 0; i < 3; i++) { newArray[i] = array1[i]; } for (int i = 0; i < 3; i++) { newArray[i + 3] = array2[i]; } delete[] array1; delete[] array2; for (int i = 0; i < newSize; i++) { std::cout << newArray[i] << " "; } delete[] newArray; return 0; }
Результат выполнения программы будет: 1 2 3 4 5 6.
В каждом из приведенных примеров вы новый массив добавляете к уже существующему с использованием разных подходов. Выбор подхода зависит от конкретных требований вашей программы и от доступных инструментов и ресурсов.