Робохомячок

Объединение двух одномерных массивов в 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++. В зависимости от ваших потребностей и предпочтений, вы можете выбрать наиболее подходящий подход для вашей задачи.

© Copyright 2023 by DevOps. Built with ♥

Ответит на любые вопросы, напишет доклад, решит домашнее задание, можно просто поболтать :)

Абсолютно бесплатно и без рекламы.