Also known as C++ allocator
in C++, an object that handles requests for allocation and deallocation of memory for a given container
Alokator – jeden z niskopoziomowych mechanizmów biblioteki STL języka C++, wykorzystywany w kontenerach do dynamicznej alokacji oraz zwalniania pamięci. Biblioteka STL definiuje wiele różnych struktur danych, takich jak lista (std::list) czy zbiór (std::set), powszechnie nazywanych kontenerami. Ich podstawową własnością jest możliwość zmiany rozmiaru w czasie działania programu, podczas której może dojść do dynamicznej alokacji lub dealokacji pamięci. Za przydzielanie i zwalnianie pamięci w takich sytuacjach odpowiedzialne są alokatory. Standardowa biblioteka szablonów definiuje alokatory wykorzystywane domyślnie przez kontenery. Programista może jednak definiować i wstrzykiwać własne. Pomysłodawcą i twórcą alokatorów był , jeden z głównych autorów biblioteki STL. Początkowo ich celem było zwiększenie elastyczności biblioteki oraz uniezależnienie jej od konkretnych modeli pamięci, co pozwoliłoby na wykorzystanie w niej niestandardowych wskaźników oraz referencji. Jednak podczas dyskusji nad włączeniem biblioteki do standardu języka C++, komitet standaryzacyjny zauważył, że w pełni abstrakcyjny model pamięci wiąże się ze znacznym zmniejszeniem wydajności. Aby temu zapobiec, zwiększono wymagania stawiane alokatorom. W efekcie poziom konfiguracji jest dużo mniejszy niż początkowo zakładał Stepanov. Istnieje wiele różnych scenariuszy w których zdefiniowane przez programistę alokatory bywają przydatne. Jednym z najczęstszych powodów wykorzystywania własnych alokatorów jest próba zwiększenia wydajności alokacji poprzez wykorzystanie puli pamięci (ang. memory pool). Przykładowo programy, które alokują dużą liczbę małych obiektów mogą zyskać wykorzystując własne alokatory, zarówno jeżeli chodzi o szybkość działania jak i całościowe zużycie pamięci. Inną sytuacją jest zapewnienie ograniczenia dostępu do różnych typów pamięci, na przykład pamięci współdzielonej lub odzyskanej przez mechanizm garbage collection.
Abstract from DBpedia / Wikipedia · CC BY-SA
via Wikidata sitelinks · CC0
Discovered by embedding cosine similarity (sentence-transformers MiniLM, 384-dim).