Třída: TT_List
Funkce
Back to TT_List
virtual void Do(void *par,void *pointer,int number)
virtual void FreeMem(void *pointer)
TSS_List(int CountItems,int VAddItems)
bool IsNull(void)
int Count(void)
int GetAdd(void)
void SetAdd(int A)
int ForItems(void)
bool Add(void* I)
void Clear(void)
bool ClearSet(void)
bool Delete(int start,int count)
bool Insert(void* I,int poz)
bool Exchange(int one,int sec)
bool Set(int c)
void *GetPointer(int i)
void ForEveryFunction(void *par,void (*every) (void *,void *,int))
void ForEvery(void *par)
void EmptyAndFree(void)
operator[]
virtual void Do(void *par,void *pointer,int number)
Tato fce je protected a je určená k předefinování.
V "TSS_List" je prázdná a nedělá nic.
Fce se používá ve fci "ForEvery(void *par)".
Fce je Do() je volána pro každý element v zásobníku.
par - libovolný ukazatel předávaný fci ForEvery
pointer - ukazatael na polozku, ale typu void *
number - poradove cislo polozky v listu (číslováno od 0)
Top
virtual void FreeMem(void *pointer)
Tato fce je protected a je určená k předefinování.
V "TSS_List" je prázdná a nedělá nic.
Fce se používá ve fci "void EmptyAndFree(void)".
Fce FreeMem() je volána pro každý element v zásobníku.
Je určena k uvolnění paměti pro položku.
např.
void MyTSS_List::FreeMem(void *pointer)
{
delete ((MyTyp *) pointer);
}
Top
TSS_List(int CountItems,int VAddItems)
Konstruktor.
CountItems - pro kolik položek se má list připravit.
VAddItems - po kolika se má přidávat při zaplnění listu.
DOPORUČENÍ:
List připravuj vždy pro dostatečný počet položek protože neustalými
realokacemi dochází k "rozdrobení paměti".
např. vím že běžně pracuji s 10000 položkami a nemělo by jich být více
než 20000, tak zavolej TSS_List(10000,10000).
Alokovaná paměť na jeden ukazatel je 4 byte - tak si to spočítej.
Pokud by těchto položek v listu najednou bylo 200000, tak by spotřeba
paměti byla třeba i 20x větší než kdyby bylo zavolán konstruktor
s parametry 100000,100000.(jedna realokace)
Top
bool IsNull(void)
Vrací true pokud je nedostatek paměti.
VOLEJ VŽDY PO KONSTRUKTORU.
Top
int Count(void)
Vraci pocet polozek.
Top
int GetAdd(void)
Vrací pro kolik položek se bude přidávat pamět při dosažení maxima.
Top
void SetAdd(int A)
Nastaví pro kolik položek se bude přidávat pamět při dosažení maxima.
Top
int ForItems(void)
Vrací pro kolik položek je momentálně list nastaven.
Top
bool Add(void* I)
Přidá ukazatel do listu.
Vrací true v případě ůspěchu.
Vrací false v případě neůspěchu (nedostatek paměti).
Top
void Clear(void)
Vyprázdní list. Paměť jednotlivých položek neuvolňuje !!!
Top
bool ClearSet(void)
Vyprázdní list. Paměť jednotlivých položek neuvolňuje !!!
A nastavi momentální pro "AddItems" položek.
"AddItems" nastavuješ buď konstruktorem nebo fci "SetAdd()".
Vrací true v případě ůspěchu.
Vrací false v případě neůspěchu (nedostatek paměti).
Top
bool Delete(int start,int count)
Smaze pocet ukazatalu "count" od pozice(včetně) "start".
Paměť jednotlivých položek neuvolňuje !!
"count" - může být větší než je ve skutečnosti položek, hodnota bude oříznuta
Vrací true v případě ůspěchu.
Vrací false v případě neůspěchu (start < 0 nebo start > pocet polozek).
Top
bool Insert(void* I,int poz)
Vloží ukazatel "I" na pozici "poz".
Vrací true v případě ůspěchu.
Vrací false v případě neůspěchu (nedostatek paměti).
Top
bool Exchange(int one,int sec)
Prohodí ukazatele.
Vrací true v případě ůspěchu.
Vrací false v případě neůspěchu (one nebo sec je mimo rozsah).
Top
bool Set(int c)
Nastaví na "c" položek.
Případné ztracené položky nemají uvolněnou paměť.
Vrací true v případě ůspěchu.
Vrací false v případě neůspěchu (nedostatek paměti).
Top
void *GetPointer(int i)
Vrací ukazatel na prvek "i".
Pokud je "i" mimo rozsah vrací "NULL" (0)
Top
void ForEveryFunction(void *par,void (*every) (void *,void *,int))
Provede s každym prvkem funkci typu:
void (*every) (void *,void *,int))
"par" je libovolny ukazatel předávaný dál do funkce "every" jako první parametr
paramatry fce "every":
1.ibovolny ukazatel
2.ukazatel polozky
3.poradove cislo polozky
Top
void ForEvery(void *par)
Provede s každým prvekem fci Do().
viz. fce Do().
Top
void EmptyAndFree(void)
Provede s každým prvekem fci MemFree().
viz. fce MemFree().
A zavolá fci "Clear()".
Slouží pro uvolnění paměti položek.
!!! V destruktoru není volána - zavolej si sám !!!
Top
operator[]
Vrací ukazatel s pozice, stekně jak fce "GetPointer()".
Příklad
MyItems I, *p_I;
TSS_List *List = new TSS(100,50);
if(List->IsNull)
{
//error not enought memory
}
if(!List->Add(&I)
{
//error not enought memory
}
p_I = (MyItems *) (*List)[0];
//program
//free List
delete List; //Memory of I is not freed
Top
Back to TT_List
Back to Index
Domovská stránka autora (udělej kuk !!!)