есть ли аналоги в fpc
Функции для работы с массивами
К сожалению, некоторые операции, такие, как удаление и вставка в одномерный массив, требуют написание кода по копированию элементов массива. Предлагаемые процедуры позволяют выполнить эти операции для произвольного массива одним вызовом.
* PvsDynArrayClone – создает уникальную копию массива.
* PvsDynArrayInsert – вставляет новые элементы в любое место массива.
* PvsDynArrayRemove – удаляет элементы из массива.
* PvsDynArrayJoin – копирует элементы из одного массива в другой.
Кроме того, для алгоритма быстрой сортировки, нет никакой необходимости что-либо знать о типе и содержимом массива, достаточно иметь две процедуры: сравнения и обмена. Аналогично и для двоичного поиска, необходима только функция сравнения. Это позволяет написать функции сортировки и двоичного поиска в любом массиве.
* PvsQuickSort – процедура быстрой сортировки для любых данных представляемых как массив.
* PvsArrayQuickSort - процедура быстрой сортировки для любых массивов как статических, так и динамических.
* PvsDynArrayQuickSort - процедура быстрой сортировки для динамических массивов.
* PvsBinaryFind – процедура двоичного поиска в любом массиве.
* PvsDynArrayBinaryFind - процедура двоичного поиска в динамическом массиве.
Несколько замечаний по применению:
1. Одним из параметров этих функций является RTTI о типе массива, возвращаемая оператором TypeInfo. И действительно, как можно изменить размер массива, не зная размер его элемента, ведь в заголовке массива размер элемента не хранится. И это не искусственный прием, так поступает сама Delphi. Таких функций, как SetLength или Length фактически не существует, компилятор заменяет их своими системными функциями. В частности вызов SetLength транслируется в DynArraySetLength, с передачей ему RTTI.
2. Элементами динамического массива могут быть длинные строки, интерфейсы, динамические массивы и т.п. Поэтому при удалении такого элемента требуется выполнить финализацию всех находящихся в нем значений, какой бы вложенности они небыли. Предлагаемые функции корректно выполняют финализацию.
3. Функции полностью следуют стандартному поведению в отношении учета счетчика ссылок.
4. Для работы с динамическими массивами используются те же системные процедуры, которые использует сама Delphi.
извиняюсь

качать отсюда http://www.rsdn.ru/article/Delphi/DynArrays/PvsLibFD.zip