Что такое массив?

Массив - это структура данных, в которой может храниться коллекция элементов одного и того же типа данных фиксированного размера. Массив используется для хранения набора данных, но часто более полезно рассматривать массив как набор переменных того же типа.

Зачем нужны массивы?

Он используется для представления нескольких элементов данных одного типа с использованием только одного имени. Его можно использовать для реализации других структур данных, таких как связанные списки, стеки, очереди, деревья, графики и т. Д. 2D массивы используются для представления матриц. Большинство структур данных реализовано с использованием массива.

Как объявить массив: -

⫸ d_type arr_name [arr_size];

Например, возьмите целочисленный массив ‘arr’.

⫸ int arr [6];

arr [] используется для обозначения массива с именем ‘arr’.

Итак, arr [6] означает, что ‘arr’ представляет собой массив из 6 целых чисел. Здесь 6 - это размер массива, т. Е. В массиве «arr» 6 элементов.

⫸ int arr [] = {2,3,15,8,48,13};

OR

⫸ int arr [6] = {2,3,15,8,48,13};

Несколько важных моментов, касающихся массивов: -

  1. Массивы имеют 0 в качестве первого индекса, а не 1. В этом примере arr [0] является первым элементом.
  2. Если размер массива равен n, для доступа к последнему элементу используется индекс (n-1). В этом примере arr [5] - последний элемент.
  3. Предположим, начальный адрес arr [0] - 2450a. Тогда следующим адресом arr [1] будет 2454a, адресом arr [2] будет 2458a и так далее. Это потому, что размер int составляет 4 байта (адрес увеличивается на 4 байта). Аналогичным образом для разных типов данных адрес увеличивается в соответствии с размером типа данных.

В C ++ есть 4 важных концепции Array:

  1. Передача массивов функциям. Вы можете передать функции указатель на массив, указав имя массива без индекса.
  2. Возвращать массив из функций: C ++ позволяет функции возвращать массив.
  3. Указатель на массив. Вы можете сгенерировать указатель на первый элемент массива, просто указав имя массива без какого-либо индекса.
  4. Многомерные массивы. C ++ поддерживает многомерные массивы. Простейшей формой многомерного массива является двумерный массив.

# Вот базовый код, позволяющий взять 5 входных данных от пользователя, сохранить их в массиве и вычислить сумму всех элементов, присутствующих в массиве:

Передача всего массива в функции:

Это простой трюк, чтобы передать массив в функцию, мы передадим адрес массива, то есть адрес первого элемента массива. Таким образом, имея указатель на первый элемент, мы можем получить весь массив .

⪼ Теперь мы выполним суммирование массива с помощью функции:

Возврат массива из функций:

⪼ Базовый код для сортировки массива с помощью функции.

Указатель на массивы:

Как мы все знаем, указатель - это переменная, значение которой является адресом некоторой другой переменной, например, если переменная y указывает на другую переменную x, значит, значение переменной «y» - это адрес «x».

Аналогичным образом, если мы говорим, что переменная y указывает на массив n, это означает, что значение «y» является адресом первого элемента массива, т. Е. , n [0]. Итак, y - указатель на массив n.

Если p является указателем на массив mark, то это означает, что p (или имя) указывает на mark [0].

⫸ int mark [50];
⫸ int * p;
⫸ p = age;

Теперь, поскольку p указывает на первый элемент массива age, * p - это значение первого элемента массива.

Поскольку * p относится к первому элементу массива, * (p + 1) и * (p + 2) относятся ко второму и третьему элементам соответственно и так далее.

Итак, * p - это метки [0], * (p + 1) - метки [1], * (p + 2) - метки [2] и т. Д.

Например:

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

В C / C ++ мы можем простыми словами определять многомерные массивы как массив массивов. Данные в многомерных массивах хранятся в табличной форме (в порядке возрастания строк).

⪼ Общая форма объявления N-мерных массивов:

data_type  array_name[size1][size2]....[sizeN];
data_type: Type of data to be stored in the array(i.e int,float,...) Here data_type is valid C/C++ data type
array_name: Name of the array
size1, size2,... ,sizeN: Sizes of the dimensions

⪼ Пример:

Two dimensional array:
int two_d[10][20];

Three dimensional array:
int three_d[10][20][30];

Общее количество элементов, которые могут быть сохранены в многомерном массиве, можно рассчитать, умножив размер всех измерений.

Например:
В массиве int x [5] [10] может храниться всего (5 * 10) = 50 элементов.
Аналогично массив int x [5] [10] [20] может хранить всего (5 * 10 * 20) = 1000 элементов.

2D-массив в C ++:

Двумерный массив в C ++ - это массив, состоящий из более чем одной строки и более чем одного столбца. В двумерном массиве каждый элемент обозначается двумя индексами. Элементы хранятся в этих массивах в виде матриц. Первый индекс показывает строку матрицы, а второй индекс показывает столбец матрицы.

Синтаксис двумерного массива: -

data_type  array_name[Number of rows][Number of columns];

Например: -

int matrix [3][3]; /*compiler will generate a 2-D array of a matrix which consists of 3 rows and 3 columns.*/

Чтобы хранить значения в двумерных массивах C ++, программист должен указать номер строки и номер столбца матрицы. Чтобы получить доступ к каждому отдельному месту в матрице для хранения значений, пользователь должен указать точное количество строк и столбцов.

Как ввести данные в двумерные массивы: -

Вложенный цикл используется для ввода данных в двумерные массивы. Это зависит от программиста, какой цикл он хочет использовать: это может быть цикл while или цикл For. Внешний цикл действует как количество строк матрицы, а внутренний цикл действует как количество столбцов матрицы. Точно так же для отображения используются шлейфы.

Мы можем инициализировать 2D-массив при объявлении:

int x[3][4] = {{0,1,2,3}, {4,5,6,7}, {8,9,10,11}};
//Each set of inner braces represents one row.

Вы можете попрактиковаться в концепции массива онлайн на:

  1. Leetcode
  2. Хакерблоки
  3. Хакерранк

Преимущества массива в C / C ++:

  1. Произвольный доступ к элементам с использованием индекса массива.
  2. Использование меньшего количества строк кода, поскольку это создает единый массив из нескольких элементов.
  3. Легкий доступ ко всем элементам.
  4. Обход массива становится простым с помощью одного цикла.
  5. Сортировка становится проще, поскольку ее можно выполнить, написав меньше строк кода.

Недостатки массива в C / C ++:

  1. Позволяет вводить фиксированное количество элементов, которое определяется во время объявления. В отличие от связанного списка, массив в C не является динамическим.
  2. Вставка и удаление элементов могут быть дорогостоящими, так как элементы должны управляться в соответствии с новым распределением памяти.

скоро выйдет следующая статья с новой структурой данных…

Проверить предыдущую статью:

« Введение в структуру данных и алгоритм в C ++ для начинающих: (Часть 1) »