Массив - это упорядоченная структура данных, состоящая из набора элементов (значений или переменных), каждый из которых идентифицируется одним или несколькими индексами. Когда вы спрашиваете о конкретных вариантах массивов, используйте вместо них следующие связанные теги: [vector], [arraylist], [matrix]. При использовании этого тега в вопросе, который является специфическим для языка программирования - пометьте вопрос с использованием используемого языка программирования.
Массив представляет собой упорядоченную структуру данных, состоящую из набора элементов (значений или переменных), каждый из которых идентифицируется по меньшей мере одним индексом, хранящимся в смежных местах памяти.
Массив обычно хранится так, что положение каждого элемента может быть вычислено из его кортежа индекса с помощью математической формулы.
В некоторых языках (C, Java и т. Д.) Длина массива должна быть установлена заранее. В других языках (Ruby, Python, LISP, Haxe и т. Д.) Длина массива динамически увеличивается при добавлении элементов.
При пометке вопроса этим тегом также пометьте вопрос используемым языком программирования.
std::array
для размеров массивов во время компиляции, std::vector
для массивов динамического размера во время выполнения. Он также имеет интеллектуальные реализации указателей, такие как std::unique_ptr
, std::shared_ptr
. NSArray
и NSMutableArray
для динамических массивов. array
. list
, в то время как тип array
используется для однородных массивов. new Array()
или [1, 2, 3]
, но также с использованием понимания массива: [for (i in 0...10) if (i % 2 == 0) i]
. Для хранения фиксированного размера можно использовать абстрактный тип haxe.ds.Vector
, который может быть быстрее, чем Array в некоторых целях, и никогда не медленнее. Array
. Чтобы получить элемент из массива, вы используете не квадратные скобки, как в большинстве других языков, а скобки. @
, а массивы объявляются в скобках. Замена префикса на $#
возвращает последний индекс. Элементы массива обычно указываются с нулевым первым индексом, например, myarray[0]
будет представлять первый элемент myarray
. myarray[l]
(где l
- длина массива минус 1) будет представлять последний элемент в массиве. Однако некоторые языки, такие как старый Фортран и Lua, используют 1 в качестве начального индекса.
Некоторые языки (C ++, Java, C #) имеют «базовые массивы» и коллекции. Базовые массивы поддерживаются компилятором напрямую, имеют фиксированный размер и обеспечивают доступ к элементам только по индексу. Коллекции, подобно Java ArrayList
, являются классами системной библиотеки, реализованными поверх этих базовых массивов, и имеют широкий спектр различных методов. В таких случаях тег arrays должен использоваться для именования простых массивов.
Массивы могут быть статически или динамически размещены. Способ доступа к массиву и его тип зависят от того, как он объявлен и размещен.
Массивы могут содержать несколько индексов. Например, массив с одним индексом (например, array[0]
) известен как одномерный массив. Если он имеет два индекса (например, array[0][0]
), он считается двухмерным и может быть визуализирован как сетка. Многомерные массивы или, другими словами, массивы с несколькими индексами называются матрицами, или матрицами в единственном числе.
Где говоря о конкретных вариантах массивов, используйте вместо них следующие связанные теги: