0

Вектор в информатике это

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

Wikimedia Foundation . 2010 .

Смотреть что такое "Вектор" в других словарях:

Вектор — Вектор. Проекции x, y, z вектора OM на оси i, j, k. ВЕКТОР (от латинского vector, буквально несущий), отрезок прямой определенной длины и направления. С помощью вектора изображают так называемые векторные величины: силу, скорость, ускорение.… … Иллюстрированный энциклопедический словарь

ВЕКТОР — (от латинского vector, буквально несущий), отрезок прямой определенной длины и направления. С помощью вектора изображают так называемые векторные величины: силу, скорость, ускорение. Обычно вектор обозначается буквой жирного шрифта a или OM… … Современная энциклопедия

вектор — — [http://www.rfcmd.ru/glossword/1.8/index.php?a=index d=5044] вектор Упорядоченный набор из некоторого количества независимых действительных чисел (таково одно из многих определений — то, которое принято в экономико математических… … Справочник технического переводчика

Вектор — [vector] упорядоченный набор из некоторого количества независимых действительных чисел (таково одно из многих определений то, которое принято в экономико математических методах). Например, суточный план цеха может быть записан 4 мерным вектором… … Экономико-математический словарь

ВЕКТОР — ВЕКТОР, в математике величина, имеющая как размер, так и направление, в противоположность СКАЛЯРУ, имеющему только размер. Например, СКОРОСТЬ объекта определяется численным значением скорости и направлением, в котором он движется в данный момент … Научно-технический энциклопедический словарь

ВЕКТОР — (vector) Краткое обозначение перечня переменных, которые могут сами по себе быть числами или алгебраическими выражениями. Вектор может быть записан как строка, так что х=(х1, х2. хN), или как столбец, так что Говорят, что вектор с N элементами … Экономический словарь

ВЕКТОР — в молекулярной генетике самостоятельно реплицирующаяся молекула ДНК, способная включать чужеродную ДНК (гены) и переносить ее в клетки, наследственные свойства которых желают изменить. Обычно вектор создают на основе ДНК плазмид и вирусов (в т. ч … Большой Энциклопедический словарь

ВЕКТОР — В механике: такие количества, которым приписывается не только величина, но и направление, как скорость, сила и т. п. Словарь иностранных слов, вошедших в состав русского языка. Чудинов А.Н., 1910. вектор (лат. vector везущий, несущий) мат,… … Словарь иностранных слов русского языка

вектор — а, м. vecteur m. спец. Отрезок прямой, характеризующийся численным значением и определенной направленностью. БАС 2. Отм. в Татищев 1816 в словосочетании радиус вектор. Вектор. Битнер 1905. ЭС. Лекс. Уш. 1935: ве/ктор, ве/кторный … Исторический словарь галлицизмов русского языка

ВЕКТОР — (от лат. vector несущий) отрезок определенной длины и направления. Обычно вектор обозначается буквой a или (первая буква начало, вторая конец отрезка); абсолютная величина (длина) вектора записывается … Большой Энциклопедический словарь

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

Читайте также:  Выбираем видеорегистратор для автомобиля

Размерность массива — это количество индексов, необходимое для однозначной адресации элемента в рамках массива [1] [2] . По количеству используемых индексов массивы делятся на одномерные, двумерные, трёхмерные и т. д.

Форма или структура массива — сведения о количестве размерностей и размере (протяжённости) массива по каждой из размерностей [3] ; может быть представлена одномерным массивом [4] .

Особенностью массива как структуры данных (в отличие, например, от связного списка) является константная вычислительная сложность доступа к элементу массива по индексу [5] . Массив относится к структурам данных с произвольным доступом.

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

Содержание

Общее описание [ | ]

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

Количество используемых индексов массива может быть различным: массивы с одним индексом называют одномерными, с двумя — двумерными, и т. д. Одномерный массив — нестрого соответствует вектору в математике; двумерный («строка», «столбец»)— матрице. Чаще всего применяются массивы с одним или двумя индексами; реже — с тремя; ещё большее количество индексов — встречается крайне редко.

Пример фиксированного массива на языке Паскаль

В некоторых языках программирования многомерные массивы создаются на основе одномерных, у которых элементы являются массивами [6] .

Пример двумерного массива на JavaScript

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

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

Объявление типа «массив» в языке Паскаль

В языке программирования APL массив является основным типом данных (при этом нуль-мерный массив называется скаляром, одномерный — вектором, двумерный — матрицей) [4] . Помимо присваивания массивов в этом языке поддерживаются операции векторной и матричной арифметики, каждая из которых выполняется одной командой, операции сдвига данных в массивах, сортировка строк матрицы и т. п.

Специфические типы массивов [ | ]

Динамические массивы [ | ]

Динамическими называются массивы, размер которых может изменяться во время выполнения программы. Обычные (не динамические) массивы называют ещё фиксированными или статическими.

Динамические массивы могут реализовываться как на уровне языка программирования, так и на уровне системных библиотек. Во втором случае динамический массив представляет собой объект стандартной библиотеки, и все операции с ним реализуются в рамках той же библиотеки. Так или иначе, поддержка динамических массивов предполагает наличие следующих возможностей:

  1. Описание динамического массива. На уровне языка это может быть специальная синтаксическая конструкция, на уровне библиотеки — библиотечный тип данных, значение которого объявляется стандартным образом. Как правило, при описании (создании) динамического массива указывается его начальный размер, хотя это и не обязательно.
  2. Операция определения текущего размера динамического массива.
  3. Операция изменения размера динамического массива.
Читайте также:  Блок питания aerocool vx 600 характеристики

Ниже приведён пример конструкций для работы с динамическими массивами на Delphi.

Гетерогенные массивы [ | ]

Гетерогенным называется массив, в разные элементы которого могут быть непосредственно записаны значения, относящиеся к различным типам данных. Массив, хранящий указатели на значения различных типов, не является гетерогенным, так как собственно хранящиеся в массиве данные относятся к единственному типу — типу «указатель». Гетерогенные массивы удобны как универсальная структура для хранения наборов данных произвольных типов. Реализация гетерогенности требует усложнения механизма поддержки массивов в трансляторе языка.

Реализация [ | ]

Типовым способом реализации статического гомогенного (хранящего данные одного типа) массива является следующий :

  1. Под массив выделяется непрерывный блок памяти объёмом S*m1*m2*m3…mn, где S — размер одного элемента, а m1…mn — размеры диапазонов индексов (то есть количество значений, которые может принимать соответствующий индекс).
  2. При обращении к элементу массива A[i1, i2, i3, …, in] адрес соответствующего элемента вычисляется как B+S*((…(i1p*m1+i2p)*m2+…+i(n-1)p)*mn-1+inp), где B — база (адрес начала блока памяти массива), ikp — значение k-го индекса, приведённое к целому с нулевым начальным смещением. Порядок следования индексов в формуле вычисления адреса может быть различным. Приведённый соответствует реализации в большинстве компиляторов языка Си; в Фортране порядок индексов противоположен [3] .

Таким образом, адрес элемента с заданным набором индексов вычисляется так, что время доступа ко всем элементам массива одинаково. (Здесь одинаковость времени доступа следует понимать как отсутствие теоретической зависимости времени доступа от положения элемента и размера массива. В действительности особенности конкретной вычислительной платформы могут дать определённый разброс времени доступа. Например, CAS-латентность ОЗУ приводит к увеличению времени доступа к данным, расположенным в другой колонке (странице) ОЗУ, по отношению к предыдущим считанным данным. В практике программирования такими тонкостями, за редчайшими исключениями, пренебрегают.)

Первый элемент массива, в зависимости от языка программирования, может иметь различный индекс. Различают три основных разновидности массивов: с отсчетом от нуля (zero-based), с отсчетом от единицы (one-based) и с отсчетом от специфического значения заданного программистом (n-based). Отсчет индекса элемента массивов с нуля более характерен для низкоуровневых языков программирования, хотя встречается и в языках высокого уровня, например, в том же Си. В ряде языков (Паскаль, Ада, Модула-2) диапазон индексов может определяться как произвольный диапазон значений любого типа данных, приводимого к целому, то есть целых чисел, символов, перечислений, даже логического типа (в последнем случае массив имеет два элемента, индексируемых значениями «Истина» и «Ложь»).

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

Читайте также:  Бмв это хорошая машина

Для динамических массивов может использоваться тот же механизм размещения, что и для статических, но с выделением некоторого объёма дополнительной памяти для расширения и добавлении механизмов изменения размера и перемещения содержимого массива в памяти.

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

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

Доступ к функциям вектора производится через оператор ".". Вектор – это особый тип данных, шаблон класса. Подробнее о классах и шаблонах см. главу 4 и раздел 5.4.

Для вектора не обязательно сразу указывать его размер, размер вектора можно изменить в любом месте программы при помощи функции resize(), а чтобы узнать размер вектора можно воспользоваться функцией size().

Полный список функций вектора см. Приложение 5.

Рассмотрим более подробно пример работы с вектором. Обратите внимание, что в этом примере вектор передается в функцию по ссылке, т.к. классы и массивы большого объема нерационально копировать каждый раз при вызове функции, что происходит при передачи по значению. Если функция не должна изменить содержимое контейнера, дополнительно указывается ключевое слово const.

При работе с вектором мы сталкиваемся с такими понятиями как размер и емкость. Размер – количество элементов, хранимых в контейнере, можно узнать с помощью функции size(), а изменить с помощью resize(). Операции push_back(), insert(), erase() также изменяют размеры вектора. Когда размеры вектора изменяются, то все его элементы могут быть перемещены в новую область памяти, поэтому хранить указатели на элементы вектора не имеет смысла и может быть опасно. Всегда нужно работать через итераторы (см.раздел 3.5).

С помощью функции empty() можно узнать о наличии элементов в контейнере. Если контейнер действительно пуст, то функция возвращает true.

При работе с вектором можно выделить (зарезервировать) некоторую область памяти для потенциального расширения. Использование функции reserve() обеспечить выделение памяти для новых элементов контейнера. При этом вставка новых элементов или изменение размеров с помощью resize() не потребует перераспределения хранимого вектора в памяти. Определить "емкость" вектора можно с помощью функции capaсity().

admin

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *