//Оглавление

Статические структуры данных

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

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

Множество

Простейшей структурой данных является множество — неупорядоченный набор неповторяющихся данных одного и того же типа. Примером множества может служить перечисление в C# или в С++. Несмотря на то что, два элемента перечисления могут иметь одинаковые значения, семантически такие элементы  различны. Так как каждый элемент множества уникален, то выборка элементов производиться явно, например, указанием имени в перечислении.

Вектор

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

Массив

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

Таблица

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