Moin,
ich schreibe gerade eine generische Listenklasse, die ein
array of T kapselt. Nun würde ich gerne eine universell verwendbare Methode implementieren, um die Liste zu sortieren. Soweit ich weiß, lassen sich Operatoren nur mit .NET überladen (welches ich nicht verwende). Andere Möglichkeiten wollen mir als Anfänger auch nicht einfallen.
Weiß jemand eine Lösung?
lincore
PS: Hier das Interface meiner Klasse (soweit):
Delphi-Quellcode:
const
TOP_OF_LIST = -255; // equals system.high(mArray)
type
TGenericList<T> = class
private
mArray: array of T;
//mError: boolean;
mErrorMsg: string;
mCount: integer;
function auxRearrange(fromPosition: integer = TOP_OF_LIST;
insertion: boolean = true; freeSpace: integer = 1): boolean;
function getData(index: integer): T;
procedure setData(index: integer; element: T);
public
constructor create();
procedure clear();
function assign(list: TGenericList<T>): boolean;
function insert(element: T; index: integer): boolean; overload;
function insert(list: TGenericList<T>; index: integer = TOP_OF_LIST;
from: integer = 0; til: integer = TOP_OF_LIST): boolean;
overload;
function remove(index: integer): boolean; overload;
function remove(first, last: integer): boolean; overload;
function push(element: T): boolean;
function pop(): T;
function length(): integer;
function high(): integer;
function notEmpty(): boolean;
function first(var element: T): boolean;
function next(var element: T): boolean;
function last(var element: T): boolean;
property error: string read mErrorMsg;
property data[index: integer]: T read getData write setData;
end;
Wenn Stallman eines Tages mit Zornesröte im Gesicht und blutverschmierter Klinge vor deiner Tür steht, behaupte nicht ich hätte dich nicht gewarnt.