Aracılığıyla paylaş


cache_freelist Sınıfı

Tek boyuttaki bellek bloklarını ayıran ve serbest bırakacak bir blok ayırıcı tanımlar.

Sözdizimi

template <std::size_t Sz, class Max>
class cache_freelist

Parametreler

Sz
Dizideki ayrılacak öğe sayısı.

Maksimum
Ücretsiz listenin en büyük boyutunu temsil eden maksimum sınıf. Bu max_fixed_size, max_none, max_unbounded veya max_variable_size olabilir.

Açıklamalar

cache_freelist sınıf şablonu, Sz boyutunda bellek bloklarının ücretsiz bir listesini tutar. Boş liste dolduğunda bellek bloklarını serbest bırakmak için işleç silmeyi kullanır. Boş liste boş olduğunda, yeni bellek bloklarını ayırmak için new işlecini kullanır. Ücretsiz listenin en büyük boyutu, Max parametresinde geçirilen maksimum sınıf sınıfı tarafından belirlenir.

Her bellek bloğu, kullanılabilir belleğin Sz baytlarını ve yeni ve işleç silme işlecinin gerektirdiği verileri tutar.

Oluşturucular

Oluşturucu Açıklama
cache_freelist türünde cache_freelistbir nesnesi oluşturur.

Üye işlevleri

Üye işlevi Açıklama
allocate Bir bellek bloğu ayırır.
Ayırması Belirtilen sayıda nesneyi belirtilen konumdan başlayarak depolama alanından serbest bırakın.

Gereksinimler

Üst bilgi:<ayırıcılar>

Ad alanı: stdext

cache_freelist::allocate

Bir bellek bloğu ayırır.

void *allocate(std::size_t count);

Parametreler

count
Dizideki ayrılacak öğe sayısı.

Dönüş Değeri

Ayrılan nesnenin işaretçisi.

Açıklamalar

cache_freelist::cache_freelist

türünde cache_freelistbir nesnesi oluşturur.

cache_freelist();

Açıklamalar

cache_freelist::d eallocate

Belirtilen sayıda nesneyi belirtilen konumdan başlayarak depolama alanından serbest bırakın.

void deallocate(void* ptr, std::size_t count);

Parametreler

ptr
Depolama alanından serbest bırakılacak ilk nesnenin işaretçisi.

count
Depolama alanından serbest bırakılacak nesne sayısı.

Açıklamalar

Ayrıca bkz.

<Allocators>