Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Многомерные массивы С++

Многомерные массивы C++

В этом уроке мы узнаем о многомерных массивах в C++. Точнее, как объявить их, получить к ним доступ и эффективно использовать в нашей программе.

В C++ мы можем создать массив из массива, известный как многомерный массив. Например:

int x[3][4];

Здесь x представляет собой двумерный массив. Он может содержать максимум 12 элементов.

Мы можем думать об этом массиве как о таблице с 3 строками, и каждая строка имеет 4 столбца, как показано ниже.

<рисунок>

Точно так же работают и трехмерные массивы. Например:

float x[2][4][3];

Этот массив x может содержать не более 24 элементов.

Мы можем узнать общее количество элементов в массиве, просто перемножив его размеры:

2 x 4 x 3 = 24
<час>

Инициализация многомерного массива

Как и обычный массив, мы можем инициализировать многомерный массив более чем одним способом.

1. Инициализация двумерного массива

int test[2][3] = {2, 4, 5, 9, 0, 19};

Вышеупомянутый метод не является предпочтительным. Лучший способ инициализировать этот массив с теми же элементами массива приведен ниже:

int  test[2][3] = { {2, 4, 5}, {9, 0, 19}};

Этот массив имеет 2 строки и 3 столбца, поэтому у нас есть две строки элементов по 3 элемента в каждой.

<рисунок> <час>

2. Инициализация трехмерного массива

int test[2][3][4] = {3, 4, 2, 3, 0, -3, 9, 11, 23, 12, 23, 
                 2, 13, 4, 56, 3, 5, 9, 3, 5, 5, 1, 4, 9};

Это не лучший способ инициализации трехмерного массива. Лучший способ инициализировать этот массив:

int test[2][3][4] = { 
                     { {3, 4, 2, 3}, {0, -3, 9, 11}, {23, 12, 23, 2} },
                     { {13, 4, 56, 3}, {5, 9, 3, 5}, {5, 1, 4, 9} }
                 };

Обратите внимание на размеры этого трехмерного массива.

Первое измерение имеет значение 2. . Итак, два элемента, составляющие первое измерение:

Element 1 = { {3, 4, 2, 3}, {0, -3, 9, 11}, {23, 12, 23, 2} }
Element 2 = { {13, 4, 56, 3}, {5, 9, 3, 5}, {5, 1, 4, 9} }

Второе измерение имеет значение 3. . Обратите внимание, что каждый из элементов первого измерения состоит из трех элементов:

{3, 4, 2, 3}, {0, -3, 9, 11} and {23, 12, 23, 2} for Element 1.
{13, 4, 56, 3}, {5, 9, 3, 5} and {5, 1, 4, 9} for Element 2.

Наконец, есть четыре int числа внутри каждого из элементов второго измерения:

{3, 4, 2, 3}
{0, -3, 9, 11}
... .. ...
... .. ...
<час>

Пример 1:двумерный массив

// C++ Program to display all elements
// of an initialised two dimensional array

#include <iostream>
using namespace std;

int main() {
    int test[3][2] = {{2, -5},
                      {4, 0},
                      {9, 1}};

    // use of nested for loop
    // access rows of the array
    for (int i = 0; i < 3; ++i) {

        // access columns of the array
        for (int j = 0; j < 2; ++j) {
            cout << "test[" << i << "][" << j << "] = " << test[i][j] << endl;
        }
    }

    return 0;
}

Вывод

test[0][0] = 2
test[0][1] = -5
test[1][0] = 4
test[1][1] = 0
test[2][0] = 9
test[2][1] = 1

В приведенном выше примере мы инициализировали двумерный int массив с именем test который имеет 3 "строки" и 2 "столбца".

Здесь мы использовали вложенный for цикл для отображения элементов массива.

Наконец, мы печатаем элементы массива на каждой итерации.

<час>

Пример 2. Получение входных данных для двумерного массива

#include <iostream>
using namespace std;

int main() {
    int numbers[2][3];

    cout << "Enter 6 numbers: " << endl;

    // Storing user input in the array
    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 3; ++j) {
            cin >> numbers[i][j];
        }
    }

    cout << "The numbers are: " << endl;

    //  Printing array elements
    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 3; ++j) {
            cout << "numbers[" << i << "][" << j << "]: " << numbers[i][j] << endl;
        }
    }

    return 0;
}

Вывод

Enter 6 numbers: 
1
2
3
4
5
6
The numbers are:
numbers[0][0]: 1
numbers[0][1]: 2
numbers[0][2]: 3
numbers[1][0]: 4
numbers[1][1]: 5
numbers[1][2]: 6

Здесь мы использовали вложенный for цикл для ввода массива 2d. После того, как все входные данные были приняты, мы использовали еще один вложенный for. цикл для печати элементов массива.

<час>

Пример 3:Трехмерный массив

// C++ Program to Store value entered by user in
// three dimensional array and display it.

#include <iostream>
using namespace std;

int main() {
    // This array can store upto 12 elements (2x3x2)
    int test[2][3][2] = {
                            {
                                {1, 2},
                                {3, 4},
                                {5, 6}
                            }, 
                            {
                                {7, 8}, 
                                {9, 10}, 
                                {11, 12}
                            }
                        };

    // Displaying the values with proper index.
    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 3; ++j) {
            for (int k = 0; k < 2; ++k) {
                cout << "test[" << i << "][" << j << "][" << k << "] = " << test[i][j][k] << endl;
            }
        }
    }

    return 0;
}

Вывод

test[0][0][0] = 1
test[0][0][1] = 2
test[0][1][0] = 3
test[0][1][1] = 4
test[0][2][0] = 5
test[0][2][1] = 6
test[1][0][0] = 7
test[1][0][1] = 8
test[1][1][0] = 9
test[1][1][1] = 10
test[1][2][0] = 11
test[1][2][1] = 12

Основная концепция печати элементов трехмерного массива аналогична концепции двумерного массива.

Однако, поскольку мы манипулируем тремя измерениями, мы используем вложенный цикл for с тремя циклами вместо двух:

Как мы видим, сложность массива экспоненциально возрастает с увеличением размеров.


Язык C

  1. С# Массивы
  2. С# многомерный массив
  3. Зубчатый массив С#
  4. Операторы С++
  5. С++ Комментарии
  6. Передача массива в функцию в программировании на C++
  7. Массивы копирования Java
  8. Массивы в C++ | Объявить | Инициализировать | Указатель на примеры массивов
  9. C++ динамическое выделение массивов с примером
  10. MATLAB — Массивы