Почему мы используем многомерные массивы?

Я изучаю многомерные массивы, у меня есть понимание того, как работают многомерные массивы и как их использовать, за исключением одной вещи. В какой ситуации нам нужно их использовать? и почему?

4 ответа

Решение

В основном, многомерные массивы используются, если вы хотите поместить массивы в массив.

Скажем, у вас есть 10 учеников, и каждый пишет 3 теста. Вы можете создать массив как: arr_name [10] [3]

Итак, вызов arr_name [0] [0] даст вам результат ученика 1 на уроке 1. Вызов arr_name [5] [2] даст вам результат ученика 6 в тесте 3.

Вы можете сделать это с массивом из 30 позиций, но мультиразмерность:

1) легче понять

2) легче отлаживать.

Вот пара примеров массивов в знакомых ситуациях.

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

    pixel = screen[20][5]  // get the pixel at the 20th row, 5th column
    

    Это также можно сделать с помощью трехмерного массива для представления трехмерного пространства.

  2. Массив может действовать как электронная таблица. Здесь строки - клиенты, а столбцы - имя, адрес электронной почты и дата рождения.

    name = customers[0][0]
    email = customers[0][1]
    dateofbirth = customers[0][2]
    

На самом деле есть более фундаментальная модель, лежащая в основе этого. Вещи есть вещи есть вещи... и так далее. И в некотором смысле вы правы, задаваясь вопросом, нужны ли вам многомерные массивы, потому что есть другие способы представления того же шаблона. Это просто для удобства. Вы могли бы альтернативно

  1. Имейте одномерный массив и делайте математику, чтобы он действовал многомерно. Если бы вы проиндексировали пиксели один за другим слева направо сверху вниз, у вас получилось бы около миллиона элементов. Разделите на ширину экрана, чтобы получить строку. Остальная часть - столбец.

  2. Используйте объекты. Вместо использования многомерного массива в примере 2 вы можете иметь одномерный массив объектов Customer. Каждый объект Customer будет иметь атрибуты name, email и dob.

Так что редко есть один способ что-то сделать. Просто выберите наиболее понятный способ. С массивами вы получаете доступ по номеру, с объектами вы получаете доступ по имени.

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

Хорошими вариантами использования массивов 2D или Two D могут быть:

  • Matrix Math т.е. вращение вещей в пространстве на плоскости и многое другое.
  • Карты, такие как игровые карты, вид сверху или сбоку для фактической графики или описательных данных.
  • Электронная таблица как хранилище.
  • Несколько столбцов данных отображаемой таблицы.
  • Виды графических работ.

Я знаю, что может быть гораздо больше, поэтому, возможно, кто-то еще может добавить в этот список свои ответы.

Другие вопросы по тегам