ВУЗ:
Составители:
Рубрика:
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
 - …
 - следующая ›
 - последняя »
 
