Массив - это упорядоченная структура данных, состоящая из набора элементов (значений или переменных), каждый из которых идентифицируется одним или несколькими индексами. Когда вы спрашиваете о конкретных вариантах массивов, используйте вместо них следующие связанные теги: [vector], [arraylist], [matrix]. При использовании этого тега в вопросе, который является специфическим для языка программирования - пометьте вопрос с использованием используемого языка программирования.

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

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

В некоторых языках (C, Java и т. Д.) Длина массива должна быть установлена ​​заранее. В других языках (Ruby, Python, LISP, Haxe и т. Д.) Длина массива динамически увеличивается при добавлении элементов.

При пометке вопроса этим тегом также пометьте вопрос используемым языком программирования.

Массивы в определенных языках

  • Массивы C # на самом деле являются объектами, а не просто адресуемыми областями непрерывной памяти, как в C и C ++. Массив - это абстрактный базовый тип всех типов массивов. Вы можете использовать свойства и другие члены класса, которые есть у Array.
  • C-массивы действуют для хранения связанных данных под одним именем переменной с индексом, также известным как индекс. Они хранятся в главном порядке строк, что означает, что последний индекс изменяется быстрее всего. Проще всего представить массив как просто список или упорядоченную группировку для переменных того же типа. Таким образом, массивы часто помогают программисту эффективно и интуитивно организовать сбор данных.
  • C ++ наследует необработанные массивы от C, а также добавляет собственный класс-массив std::array для размеров массивов во время компиляции, std::vector для массивов динамического размера во время выполнения. Он также имеет интеллектуальные реализации указателей, такие как std::unique_ptr , std::shared_ptr .
  • Objective C наследует необработанные массивы от C и добавляет свой собственный класс массива NSArray и NSMutableArray для динамических массивов.
  • Класс нормальных массивов Ruby называется array.
  • В Python тип данных нормального массива называется a list, в то время как тип array используется для однородных массивов.
  • В NumPy есть мощный N-мерный массив со многими возможностями .
  • PHP-массивы реализованы в виде упорядоченных карт, которые могут содержать сочетание числовых или строковых ключей.
  • Массивы JavaScript - это просто объекты с другим прототипом ( с дополнительными функциями более полезны для массивоподобных структур), с числовыми индексами, хранящимися как строки (все ключи JavaScript являются строками).
  • В Haxe Array имеет один тип параметра, который соответствует типу набора элементов. Массивы могут быть созданы с использованием их конструктора new Array() или [1, 2, 3], но также с использованием понимания массива: [for (i in 0...10) if (i % 2 == 0) i]. Для хранения фиксированного размера можно использовать абстрактный тип haxe.ds.Vector, который может быть быстрее, чем Array в некоторых целях, и никогда не медленнее.
  • В Scala нормальный класс массива называется Array. Чтобы получить элемент из массива, вы используете не квадратные скобки, как в большинстве других языков, а скобки.
  • В Java массив - это контейнерный объект, который содержит фиксированное количество значений одного типа. Длина массива устанавливается при его создании. После создания его длина фиксируется.
  • В Perl переменные массива обозначаются префиксом @, а массивы объявляются в скобках. Замена префикса на $# возвращает последний индекс.
  • В Rust массивы представляют собой группы данных одного и того же типа, смежные в памяти, поэтому их можно использовать при обмене данными с C. Длина массива фиксирована.

Характеристики

Элементы массива обычно указываются с нулевым первым индексом, например, myarray[0] будет представлять первый элемент myarray. myarray[l] (где l - длина массива минус 1) будет представлять последний элемент в массиве. Однако некоторые языки, такие как старый Фортран и Lua, используют 1 в качестве начального индекса.

Некоторые языки (C ++, Java, C #) имеют «базовые массивы» и коллекции. Базовые массивы поддерживаются компилятором напрямую, имеют фиксированный размер и обеспечивают доступ к элементам только по индексу. Коллекции, подобно Java ArrayList, являются классами системной библиотеки, реализованными поверх этих базовых массивов, и имеют широкий спектр различных методов. В таких случаях тег должен использоваться для именования простых массивов.

Массивы могут быть статически или динамически размещены. Способ доступа к массиву и его тип зависят от того, как он объявлен и размещен.

Массивы могут содержать несколько индексов. Например, массив с одним индексом (например, array[0]) известен как одномерный массив. Если он имеет два индекса (например, array[0][0]), он считается двухмерным и может быть визуализирован как сетка. Многомерные массивы или, другими словами, массивы с несколькими индексами называются матрицами, или матрицами в единственном числе.

Ссылки

Связанные теги

Где говоря о конкретных вариантах массивов, используйте вместо них следующие связанные теги: