ВУЗ:
Составители:
Рубрика:
7
TrimToSize, при вызове которого размер выделенной памяти уменьшается до
размера массива.
1.2 Реализация класса «Динамический массив»
Итак, добавим в интерфейс динамического массива процедуры
Reserve(newcap), TrimToSize и функцию Capacity. Для реализации дан-
ного интерфейса добавим в закрытую секцию класса поля sz и cap, отвечающие
соответственно за размер и емкость массива, а также указатель data на массив
элементов типа DataType максимально возможного размера (см.п. …). Приве-
дем реализацию класса
«Динамический массив целых», представленную в виде
модуля IntArray.
unit IntArray;
interface
type DataType=integer; // может быть изменен на любой
другой тип
const MaxSize = MaxInt div sizeof(DataType);
type
Arr = array [0..MaxSize-1] of DataType;
PArr = ^Arr;
type
DynArray = class
private
data: PArr;
sz,cap: integer;
public
constructor Create(n,cp: integer); overload;
constructor Create(n: integer); overload;
constructor Create; overload;
destructor Destroy;
procedure Resize(newsize: integer);
procedure Reserve(newcap: integer);
function Size: integer;
function Capacity: integer;
procedure TrimToSize;
procedure Add(x: DataType);
function GetItem(i: integer): DataType;
procedure SetItem(i: integer; x: DataType);
end;
implementation
Страницы
- « первая
- ‹ предыдущая
- …
- 3
- 4
- 5
- 6
- 7
- …
- следующая ›
- последняя »