"3.88.161.108 - 3.88.161.108"

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

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

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

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

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

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

  • Массивы С# на самом деле являются объектами, а не просто адресуемыми областями непрерывной памяти, как в C и C++. Массив - это абстрактный базовый тип всех типов массивов. Вы можете использовать свойства и другие члены класса, которые есть у Array.
  • C-массивы действуют для хранения связанных данных под одним именем переменной с индексом, также известным как индекс. Они хранятся в основном порядке строк, что означает, что последний индекс изменяется быстрее всего. Проще всего представить массив как просто список или упорядоченную группировку для переменных одного типа. Таким образом, массивы часто помогают программисту эффективно и интуитивно организовать сбор данных.
  • C++ наследует необработанные массивы от C, а также добавляет собственный класс-массив std::array для размеров 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 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. Длина массива фиксирована.

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

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

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

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

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

Рекомендации

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

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