In C++ programmering zijn allocatoren (Engels: allocators) een belangrijk onderdeel van de . Deze softwarebibliotheek biedt een aantal gegevensstructuren, zoals lijsten en verzamelingen, meestal aangeduid als containers. Tijdens van het programma kunnen deze containers hun grootte aanpassen. Daartoe is doorgaans een vorm van dynamische geheugentoewijzing vereist. Allocatoren behandelen alle aanvragen voor geheugen voor een container. Voor algemene doeleinden biedt de C++ Standaardbibliotheek allocatoren die standaard worden gebruikt. Programmeurs kunnen desgewenst ook op maat gemaakte allocatoren definiëren en bouwen. Het idee van allocatoren werden uitgewerkt door Alexander Stepanov als onderdeel van de Standard Template Library (STL). Allocatoren waren oorspronkelijk bedacht als een middel om deze bibliotheek flexibel en onafhankelijk van het onderliggende te maken. Zij moesten programmeurs in staat stellen op binnen de STL op maat gemaakte pointer- en te gebruiken. In het beslissingsproces hoe STL binnen de C++-standaard moest worden ingepast, realiseerde de C++-standaardisatiecommissie zich echter dat een volledige van het geheugenmodel tot een onaanvaardbaar verlies aan zou leiden. Om dit te verhelpen werden er restrictievere eisen aan allocatoren gesteld. Als gevolg daarvan werd de mate van aanpasbaarheid van allocatoren binnen C++ een stuk beperkter dan wat Stepanov oorspronkelijk voor ogen had gestaan. Toch zijn er tal van scenario's denkbaar waarin het gebruik van op maat gedefinieerde allocatoren wenselijk is. Enkele van de meest voorkomende redenen voor het definiëren van op maat gedefinieerde allocatoren zijn onder meer het verbeteren van de performance door gebruik te maken van en het inkapselen van de toegang tot verschillende soorten geheugen, zoals of garbage collectiongeheugen. In het bijzonder kunnen programma's waarin op zeer frequente basis kleine hoeveelheden geheugen worden gealloceerd en weer vrijgegeven veel baat hebben bij op maat gedefinieerde allocatoren, zowel in termen van de looptijd van het programma (runtime) als ook wat betreft haar "geheugenfootprint".
Abstract from DBpedia / Wikipedia · CC BY-SA
via Wikidata sitelinks · CC0
Discovered by embedding cosine similarity (sentence-transformers MiniLM, 384-dim).