Каково фактическое определение массива? [дубликат]

Я сомневаюсь, что Microsoft избавится от Доступа. С 2007 Доступа интеграция с Sharepoint и быстрым ростом SharePoint, Доступ может на самом деле иметь всплеск как офлайновый и инструмент создания отчетов для веб-сайтов SharePoint.

10
задан 9 revs, 3 users 42% 23 May 2017 в 11:54
поделиться

8 ответов

Массив - это упорядоченный набор элементов данных, индексированных целым числом. Больше ни в чем нельзя быть уверенным. Проголосуйте за этот ответ, который, по вашему мнению, является единственным разумным исходом этого вопроса.

3
ответ дан 3 December 2019 в 17:59
поделиться

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

1
ответ дан 3 December 2019 в 17:59
поделиться

массив является контейнером, и объекты, которые он содержит, не имеют никаких отношений, кроме порядка; объекты хранятся в непрерывном пространстве абстрактно (высокий уровень, конечно, низкий уровень тоже может быть непрерывным), поэтому вы можете получить к ним доступ через слот [x, y, z ...]. например, для каждого массива [2,3,5,7,1] вы можете получить 5, используя слот [2] (слот [3] на некоторых языках).

для списка, контейнера тоже, каждый объект ( ну, каждый держатель объекта, такой как слот или узел ), который он содержит, имеет индикаторы, которые «указывают» на другой объект (объекты), и это основная взаимосвязь; как правило, как на высоком, так и на нижнем уровне пространство не является непрерывным, но может быть непрерывным; поэтому доступ через слот [x, y, z ...] не рекомендуется. например, за | -2-3-5-7-1- | вам нужно совершить путешествие от первого объекта к третьему, чтобы получить 5.

0
ответ дан 3 December 2019 в 17:59
поделиться

Из FOLDOC :

массив

1. < программирование > Коллекция идентично типизированных элементов данных различаются своими индексами (или «нижними индексами»). Номер размеров, которые может иметь массив, зависит от языка, но обычно без ограничений.

Массив - это своего рода агрегированный тип данных. Один обычная переменная (« скаляр ») может рассматриваться как нульмерный массив. Также известен одномерный массив как « вектор ».

Ссылка на элемент массива записывается примерно так A [i, j, k], где A - имя массива, а i, j и k - индексы. Особенностью языка C является то, что каждый индекс записывается в отдельных скобках, например A [i] [j] [k]. Это выражает тот факт, что в C N-мерный массив на самом деле вектор, каждый из элементов которого является N-1 мерным массивом.

Элементы массива обычно хранятся непрерывно. Языки различаются в зависимости от того, крайний левый или крайний правый индекс изменяется наиболее быстро, то есть сохраняется ли каждая строка непрерывно или каждый столбец (для 2D-массива).

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

2. < архитектура > массив процессора , не путать с процессор массива .

Также обратите внимание, что в некоторых языках, когда они говорят «массив», они фактически означают « ассоциативный массив »:

ассоциативный массив

< программирование > (Или «хэш», «карта», «словарь») Массив где индексы не просто целые числа , но могут быть произвольные строки.

awk и его потомки (например, Perl ) имеют ассоциативный массивы, которые реализованы с использованием хэш-кодирования для более быстрого Погляди.

3
ответ дан 3 December 2019 в 17:59
поделиться

array | əˈrā |

noun

1 впечатляющий дисплей или диапазон определенного типа вещей: существует огромное количество литературы по этой теме | ошеломляющее множество вариантов выбора .

2 упорядоченное расположение, в частности

  • расположение войск.
    1. Математика : расположение количеств или символов в строках и столбцах; матрица.
    2. Вычислительная техника : упорядоченный набор связанных элементов.
    3. Закон : список назначенных присяжных.

3 поэтическая / литературно продуманная или красивая одежда: он был одет в мелком массиве . глагол

  1. [пер. ] (обычно. быть выстроенным) отображать или располагать (вещи) определенным образом: вдоль стола выстроился буфет | силы выстроились против него.
  2. [пер. ] (обычно быть одетым) одевать кого-то в (указанную одежду): они были одеты в венгерскую национальную одежду.
  3. [пер. ] Law empanel (жюри). ПРОИСХОЖДЕНИЕ Среднеанглийский (в смыслах [готовность] и [место в готовности]): от древнефранцузского arei (существительное), areer (глагол), основано на латинском ad- 'к' + германское базовое значение 'подготовить'.
5
ответ дан 3 December 2019 в 17:59
поделиться

Это или должно быть все о абстракции.

На самом деле там спрятан хороший вопрос, действительно хороший, и он вызывает у меня любимую языковую раздражительность, которую я испытывал долгое время.

И становится только хуже, а не лучше.

Хорошо: есть что-то низкое и широко неуважаемое, что Фортран понял, что мои любимые языки, такие как Ruby, все еще ошибаются: они используют другой синтаксис для вызовов функций, массивов и атрибутов. Насколько это абстрактно? В fortran функция (1) имеет тот же синтаксис, что и array (1) , поэтому вы можете изменить одно на другое, не изменяя программу. (Я знаю, что не для заданий, и в случае с Фортраном, вероятно, это была случайность из-за глупых наборов символов перфокарты, а не что-то преднамеренное.)

Дело в том, что я действительно не уверен, что xy , x [y] и x (y) должны иметь другой синтаксис. Какая польза от присоединения определенной абстракции к определенному синтаксису? Чтобы сделать больше работы для программистов IDE, работающих над преобразованиями рефакторинга?

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

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

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

5
ответ дан 3 December 2019 в 17:59
поделиться

Массив:

  1. - это конечный набор элементов
  2. элементы упорядочены, и это их единственная структура
  3. элементы того же типа
  4. поддерживаются эффективные случайные access
  5. не ожидает эффективных вставок
  6. может поддерживать или не поддерживать append

(1) отличает массивы от таких вещей, как итераторы или генераторы. (2) отличает массивы от множеств. (3) отличает массивы от таких вещей, как кортежи, в которых вы получаете int и строку. (4) отличает массивы от других типов списков. Возможно, это не всегда так, но программисты ожидают, что произвольный доступ - это постоянное время. (5) и (6) существуют только для того, чтобы отрицать дополнительные требования.

2
ответ дан 3 December 2019 в 17:59
поделиться

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

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

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

Короче говоря, я думаю, что этот вопрос основан на ложной предпосылке, и не имеет полезного ответа.

РЕДАКТИРОВАТЬ: в ответ на комментарии Олли:

Я не говорю, что бесполезно использовать слова «массив» и «список». Я говорю, что слова не имеют и не могут иметь точных и четких определений ... кроме как в контексте конкретного языка программирования. Хотя вы хотели бы, чтобы эти два слова имели различное значение, это факт, что это не так. Просто посмотрите, как на самом деле используются слова. Более того, попытка навязать миру новый набор определений обречена на провал.

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

Для меня «массив» означает «упорядоченный набор вещей, который, вероятно, эффективно индексируется», а «список» означает «упорядоченный набор элементов. вещи, которые можно эффективно индексировать ". Но есть примеры как массивов, так и списков, которые идут против тренда; например, массивы PHP с одной стороны и Java ArrayLists с другой стороны. Итак, если я хочу быть точным ... в контексте, не зависящем от языка, я должен говорить о «C-подобных массивах» или «связанных списках» или какой-либо другой терминологии, которая проясняет, какую структуру данных я имею в виду. Термины «массив»

3
ответ дан 3 December 2019 в 17:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: