Allokátor

Az  allokátor vagy memóriafoglaló a C++ programozási nyelvben egy speciális osztály, amely megvalósítja és beágyazza a számítógépes memória erőforrások lefoglalásának és felszabadításának  (alkalmazotti szempontból) jelentéktelen részleteit .

Leírás

Az STL Standard Template Library összes osztálya beépített allokátorokkal kezeli a memóriát. A könyvtári konténerosztályoknál nem követelmény az allokátor kifejezett megadása, de sablonparaméterekként átadhatók a konstruktoroknak [1] . Az allokátor mechanizmus STL könyvtárba való bevezetésének oka az volt, hogy a sablonok tervezésénél elvonatkoztatni kellett a számítógépes memóriamodell korlátaitól [2] .

Ezen túlmenően számos szabványos könyvtárosztály lehetőséget biztosít egyéni lefoglaló megvalósítások beépítésére a rendszer helyett. Meg kell jegyezni, hogy a szabványos allokátorok gyakran nem formalizált nyelvi finomságok használatán alapulnak, ezért ezek okozzák a legtöbb problémát a platformok közötti kódhordozhatóság biztosításában [3] .

Szintaxis

Az allokátor értékének típusa határozza meg annak az objektumnak a típusát, amelyhez a memória le van foglalva. Ha az adott típus T, akkor egy tagfüggvény meghívása allocate(n)lehetővé teszi, hogy kérést generáljunk a gép memóriájában a [4]n típusú objektumok tárolására . T

A deklarálást és kiosztást követően a nem szabványos allokátorral rendelkező objektumok semmiben sem különböznek a többi objektumtól, de a megjósolhatatlan következmények miatt erősen nem ajánlott keverni őket. A különböző típusú memóriafoglalással rendelkező objektumok azonosításához használhatja a szabványos allokátor hozzáférési funkciókat get_allocator()az összehasonlító művelettel kombinálva ==[5] .

Jegyzetek

  1. Ostern, 2004 , Alokátorok, p. 96.
  2. G. Andreas, F. Masur Allocators (STL) www.codeguru.com, 2004
  3. Ostern, 2004 , Allokátor, p. 176-177.
  4. Ostern, 2004 , Allokátor, p. 178.
  5. Josyutis, 2004 , Allokátorok használata az alkalmazásprogramozásban, p. 701-702.

Források