Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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, std::size_t Nelts = 20>
class cache_chunklist
Parametreler
Sz
Dizideki ayrılacak öğe sayısı.
Açıklamalar
Bu sınıf şablonu ham belleğin öbeklerini ayırmak için yeni işlecini kullanır, gerektiğinde bellek bloğu için depolama ayırmak için blokları ayırır; serbest bırakılmış bellek bloklarını her öbek için ayrı bir boş listede depolar ve bellek bloklarının hiçbiri kullanımda olmadığında öbekleri serbest bırakmak için işleç silmeyi kullanır.
Her bellek bloğu, kullanılabilir belleğin Sz baytlarını ve ait olduğu öbek işaretçisini tutar. Her öbek bellek bloklarını, üç işaretçiyi, bir int'i ve yeni ve işleç silmeNeltsgerektirdiği verileri tutar .
Oluşturucular
| Oluşturucu | Açıklama |
|---|---|
| cache_chunklist | türünde cache_chunklistbir nesnesi oluşturur. |
Üye işlevleri
| Üye işlevi | Açıklama |
|---|---|
| ayırmak | 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_chunklist::allocate
Bir bellek bloğu ayırır.
void *allocate(std::size_t count);
Parametreler
sayı
Dizideki ayrılacak öğe sayısı.
Dönüş Değeri
Ayrılan nesnenin işaretçisi.
cache_chunklist::cache_chunklist
türünde cache_chunklistbir nesnesi oluşturur.
cache_chunklist();
cache_chunklist::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.
sayı
Depolama alanından serbest bırakılacak nesne sayısı.