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 !!!)