1
// -----------------------------------------------------------------------------
6
// -----------------------------------------------------------------------------
8
// -----------------------------------------------------------------------------
10
#define DARRAY_SIZE 10
13
#define DARRAY_NONULL 0
16
#define DARRAY_NOFREE 0
19
// -----------------------------------------------------------------------------
21
// -----------------------------------------------------------------------------
23
typedef void *vp; // Element eines DArray
25
typedef void (*dumpfunc)(vp); // Ausgabefunktion fuer ein Element
27
typedef int (*cmpfunc) (const void*, // Vergleichsfunktion fuer zwei Elemente
30
class DArray // Dynamisches Array fuer beliebige Elemente
34
int elements, // Anzahl der Elemente
35
nextfree, // Naechster freier Index
36
increment, // Schrittweite fuer Vergroesserung
37
null, // Sollen 0-Elemente beruecksichtigt werden
38
free; // Sollen Elemente explizit mit delete freigegeben werden
39
vp *array; // Eigentliches Array
45
void Shrink ( int num );
54
DArray ( DArray &other );
57
void Free ( int del ) { free = !!del; };
58
void Null ( int nul ) { null = !!nul; };
60
int Elements ( void );
67
int Del ( int index );
69
vp operator [] ( int index );
70
DArray &operator = ( DArray &other );
72
void Sort ( cmpfunc cmp );
76
void Dump ( dumpfunc edump );
79
// -----------------------------------------------------------------------------
83
// -----------------------------------------------------------------------------