In C++ computer programming, allocators are a component of the C++ Standard Library. The standard library provides several data structures, such as list and set, commonly referred to as containers. A common trait among these containers is their ability to change size during the execution of the program. To achieve this, some form of dynamic memory allocation is usually required. Allocators handle all the requests for allocation and deallocation of memory for a given container. The C++ Standard Library provides general-purpose allocators that are used by default, however, custom allocators may also be supplied by the programmer.

Property Value
dbo:abstract
  • En programmation C++, un allocateur (anglais : allocator) est un composant de la bibliothèque standard de C++ (Standard Template Library ou STL) qui gère les demandes d'allocation et de désallocation de la mémoire. La bibliothèque standard fournit plusieurs structures de données, telles que les listes et les ensembles, communément appelées conteneurs. Un point commun parmi ces conteneurs est leur capacité à changer de taille pendant l'exécution du programme. Pour ce faire, des techniques d'allocation dynamique de la mémoire sont généralement employées. Les allocateurs gèrent toutes les demandes d'allocation et de désallocation de la mémoire pour un conteneur donné. La bibliothèque standard de C++ fournit des allocateurs génériques utilisés par défaut, cependant, des allocateurs personnalisés peuvent également être écrits par le développeur. (fr)
  • In C++ computer programming, allocators are a component of the C++ Standard Library. The standard library provides several data structures, such as list and set, commonly referred to as containers. A common trait among these containers is their ability to change size during the execution of the program. To achieve this, some form of dynamic memory allocation is usually required. Allocators handle all the requests for allocation and deallocation of memory for a given container. The C++ Standard Library provides general-purpose allocators that are used by default, however, custom allocators may also be supplied by the programmer. Allocators were invented by Alexander Stepanov as part of the Standard Template Library (STL). They were originally intended as a means to make the library more flexible and independent of the underlying memory model, allowing programmers to utilize custom pointer and reference types with the library. However, in the process of adopting STL into the C++ standard, the C++ standardization committee realized that a complete abstraction of the memory model would incur unacceptable performance penalties. To remedy this, the requirements of allocators were made more restrictive. As a result, the level of customization provided by allocators is more limited than was originally envisioned by Stepanov. Nevertheless, there are many scenarios where customized allocators are desirable. Some of the most common reasons for writing custom allocators include improving performance of allocations by using memory pools, and encapsulating access to different types of memory, like shared memory or garbage-collected memory. In particular, programs with many frequent allocations of small amounts of memory may benefit greatly from specialized allocators, both in terms of running time and memory footprint. (en)
  • Alokator – jeden z niskopoziomowych mechanizmów Standardowej Biblioteki Szablonów, 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. (pl)
  • Аллокатор (англ. Allocator) или распределитель памяти в языке программирования C++ — специализированный класс, реализующий и инкапсулирующий малозначимые (с прикладной точки зрения) детали распределения и освобождения ресурсов компьютерной памяти. (ru)
  • 在C++编程中,分配器(英語:allocator)是C++标准库的重要组成部分。C++的库中定义了多种被统称为“容器”的数据结构(如链表、集合等),这些容器的共同特征之一,就是其大小可以在程序的运行时改变;为了实现这一点,进行动态内存分配就显得尤为必要,在此分配器就用于处理容器对内存的分配与释放请求。换句话说,分配器用于封装標準模板庫(STL)容器在内存管理上的低层细节。默认情况下,C++标准库使用其自带的通用分配器,但根据具体需要,程序员也可自行定制分配器以替代之。 分配器最早由作为C++标准模板库(Standard Template Library,简称STL)的一部分发明,其初衷是创造一种能“使库更加灵活,并能独立于底层数据模型的方法”,并允许程序员在库中利用自定义的指针和;但在将标准模板库纳入C++标准时,C++标准委员会意识到对数据模型的完全抽象化处理会带来不可接受的性能损耗,为作折中,标准中对分配器的限制变得更加严格,而有鉴于此,与斯特潘诺夫原先的设想相比,现有标准所描述的分配器可定制程度已大大受限。 虽然分配器的定制有所限制,但在许多情况下,仍需要用到自定义的分配器,而这一般是为封装对不同类型内存空间(如共享内存与已回收内存)的访问方式,或在使用内存池进行内存分配时提高性能而为。除此以外,从内存占用和运行时间的角度看,在频繁进行少量内存分配的程序中,若引入为之专门定制的分配器,也会获益良多。 (zh)
  • В мові програмування C++, розподільники (англ. allocators) — це важлива складова Стандартної бібліотеки С++. Стандартна бібліотека надає декілька структур даних, таких як list і set, зазвичай згадуваних як контейнери. Спільною рисою цих контейнерів є можливість змінювати розмір під час виконання програми. Для досягнення цього, зазвичай потрібна певна форма динамічного розподілення пам'яті. Розподільники опрацьовують всі запити на виділення й очищення пам'яті для даного контейнера. Стандартна бібліотека С++ забезпечує розподільники за не вказанням іншого, однак, розподільник також може бути наданий програмістом. Розподільники винайшов як частину STL. Початково вони замислювались як спосіб зробити бібліотеку більш гнучкою і незалежною від підлеглої моделі пам'яті, дозволяли програмісту використовувати користувацькі типи вказівників та з бібліотекою. Однак під час прийняття STL до Стандарту С++, комітет стандартизації C++ усвідомив, що повне абстрагування від моделі пам'яті спричинить неприйнятне падіння швидкодії. Для запобігання цьому, вимоги до розподільників зробили жорсткішими. Як наслідок, рівень підлаштування, який можуть забезпечити розподільники став обмеженішим від того яким його бачив Степанов. Однак, існує багато ситуацій, де бажані власноруч написані розподільники. Найчастіше згадуються — поліпшення швидкодії через використання пулів, оболонкування доступу до різних типів пам'яті, наприклад, спільної пам'яті або пам'яті зі збором сміття. Особливу перевагу можуть отримати програми з частими запитами на виділення маленьких кількостей пам'яті, як у швидкодії так і в об'ємі використаної пам'яті. (uk)
dbo:wikiPageExternalLink
dbo:wikiPageID
  • 21728120 (xsd:integer)
dbo:wikiPageLength
  • 24536 (xsd:integer)
dbo:wikiPageRevisionID
  • 967776770 (xsd:integer)
dbo:wikiPageWikiLink
dbp:wikiPageUsesTemplate
dct:subject
rdfs:comment
  • Аллокатор (англ. Allocator) или распределитель памяти в языке программирования C++ — специализированный класс, реализующий и инкапсулирующий малозначимые (с прикладной точки зрения) детали распределения и освобождения ресурсов компьютерной памяти. (ru)
  • En programmation C++, un allocateur (anglais : allocator) est un composant de la bibliothèque standard de C++ (Standard Template Library ou STL) qui gère les demandes d'allocation et de désallocation de la mémoire. (fr)
  • In C++ computer programming, allocators are a component of the C++ Standard Library. The standard library provides several data structures, such as list and set, commonly referred to as containers. A common trait among these containers is their ability to change size during the execution of the program. To achieve this, some form of dynamic memory allocation is usually required. Allocators handle all the requests for allocation and deallocation of memory for a given container. The C++ Standard Library provides general-purpose allocators that are used by default, however, custom allocators may also be supplied by the programmer. (en)
  • Alokator – jeden z niskopoziomowych mechanizmów Standardowej Biblioteki Szablonów, 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. (pl)
  • В мові програмування C++, розподільники (англ. allocators) — це важлива складова Стандартної бібліотеки С++. Стандартна бібліотека надає декілька структур даних, таких як list і set, зазвичай згадуваних як контейнери. Спільною рисою цих контейнерів є можливість змінювати розмір під час виконання програми. Для досягнення цього, зазвичай потрібна певна форма динамічного розподілення пам'яті. Розподільники опрацьовують всі запити на виділення й очищення пам'яті для даного контейнера. Стандартна бібліотека С++ забезпечує розподільники за не вказанням іншого, однак, розподільник також може бути наданий програмістом. (uk)
  • 在C++编程中,分配器(英語:allocator)是C++标准库的重要组成部分。C++的库中定义了多种被统称为“容器”的数据结构(如链表、集合等),这些容器的共同特征之一,就是其大小可以在程序的运行时改变;为了实现这一点,进行动态内存分配就显得尤为必要,在此分配器就用于处理容器对内存的分配与释放请求。换句话说,分配器用于封装標準模板庫(STL)容器在内存管理上的低层细节。默认情况下,C++标准库使用其自带的通用分配器,但根据具体需要,程序员也可自行定制分配器以替代之。 分配器最早由作为C++标准模板库(Standard Template Library,简称STL)的一部分发明,其初衷是创造一种能“使库更加灵活,并能独立于底层数据模型的方法”,并允许程序员在库中利用自定义的指针和;但在将标准模板库纳入C++标准时,C++标准委员会意识到对数据模型的完全抽象化处理会带来不可接受的性能损耗,为作折中,标准中对分配器的限制变得更加严格,而有鉴于此,与斯特潘诺夫原先的设想相比,现有标准所描述的分配器可定制程度已大大受限。 (zh)
rdfs:label
  • Allocator (C++) (en)
  • Allocateur (C++) (fr)
  • Alokator (pl)
  • Allocator (C++) (nl)
  • Аллокатор (ru)
  • Розподільник (C++) (uk)
  • 分配器 (C++) (zh)
owl:sameAs
prov:wasDerivedFrom
foaf:isPrimaryTopicOf
is dbo:wikiPageRedirects of
is dbo:wikiPageWikiLink of
is foaf:primaryTopic of