Описание тега arrays

Массив - это упорядоченная линейная структура данных, состоящая из набора элементов (значений, переменных или ссылок), каждый из которых идентифицируется одним или несколькими индексами. Когда вы спрашиваете о конкретных вариантах массивов, используйте вместо них следующие связанные теги: [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 обычный тип данных массива называется list, в то время как array Тип используется для однородных массивов.
  • В NumPy есть мощный N-мерный массив с множеством возможностей.
  • Массивы PHP реализованы в виде упорядоченных карт, которые могут содержать сочетание числовых или строковых ключей.
  • Массивы JavaScript - это просто объекты с другим прототипом ( с дополнительными функциями, более полезными для структур, подобных массиву), со значениями числовых индексов, хранящимися в виде строк (все ключи JavaScript являются строками). В отличие от других объектов, вы не можете использовать точечную нотацию для доступа к клавишам - только квадратную скобку.
  • В Haxe у массива есть один параметр типа, соответствующий типу коллекции элементов. Массивы можно создавать с помощью их конструктора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. Длина массива фиксирована.
  • В Swift - массив, включающий указанные значения, автоматически определяющий  тип элемента массива. Swift упрощает создание массивов в вашем коде с помощью литерала массива: просто заключите список значений, разделенных запятыми, квадратными скобками.
  • В Паскале объявления массивов определяют диапазон индекса, а не количество элементов; такparray: array [1..25] of real;объявляет массив из 25 действительных чисел на основе одного(допустимыми элементами являютсяparray[1] через parray[25]), в то время как parray: array [0..24] of real;объявляет основанный на нуле('стиль C') массив того же размера (первый элементparray[0]). Диапазоны индексов массива Паскаля могут включать отрицательные числа!

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

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

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

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

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

Ссылки

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

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