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

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

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

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

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

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

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

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

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

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

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

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

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