Bagikan melalui


Kelas allocator_base

Menentukan kelas dasar dan fungsi umum yang diperlukan untuk membuat alokator yang ditentukan pengguna dari filter sinkronisasi.

Sintaks

template <class Type, class Sync>
class allocator_base

Parameter

Jenis
Jenis elemen yang dialokasikan oleh alokator.

Sinkron
Kebijakan sinkronisasi untuk alokator, yaitu Kelas sync_none, Kelas sync_per_container, Kelas sync_per_thread, atau Kelas sync_shared.

Konstruktor

Konstruktor Deskripsi
allocator_base Membuat objek jenis allocator_base.

Typedefs

Nama jenis Deskripsi
const_pointer Jenis yang menyediakan pointer konstan ke jenis objek yang dikelola oleh alokator.
const_reference Jenis yang menyediakan referensi konstan ke jenis objek yang dikelola oleh alokator.
difference_type Jenis integral yang ditandatangani yang dapat mewakili perbedaan antara nilai pointer dengan jenis objek yang dikelola oleh alokator.
Pointer Jenis yang menyediakan penunjuk ke jenis objek yang dikelola oleh alokator.
referensi Jenis yang menyediakan referensi ke jenis objek yang dikelola oleh alokator.
size_type Jenis integral yang tidak ditandatangani yang dapat mewakili panjang urutan apa pun yang dapat dialokasikan objek jenis allocator_base .
value_type Jenis yang dikelola oleh alokator.

Fungsi anggota

Fungsi anggota Deskripsi
_Charalloc Mengalokasikan penyimpanan untuk array jenis char.
_Chardealloc Membebaskan penyimpanan untuk array yang berisi elemen jenis char.
alamat Menemukan alamat objek yang nilainya ditentukan.
Mengalokasikan Mengalokasikan blok memori yang cukup besar untuk menyimpan setidaknya beberapa elemen yang ditentukan.
membangun Membuat jenis objek tertentu pada alamat tertentu yang diinisialisasi dengan nilai tertentu.
batalkan alokasi Membebaskan jumlah objek tertentu dari penyimpanan yang dimulai pada posisi tertentu.
menghancurkan Memanggil destruktor objek tanpa membatalkan alokasi memori tempat objek disimpan.
max_size Mengembalikan jumlah elemen tipe Tipe yang dapat dialokasikan oleh objek alokator kelas sebelum memori bebas habis.

Persyaratan

Header:<alokator>

Namespace: stdext

allocator_base::_Charalloc

Mengalokasikan penyimpanan untuk array jenis char.

char *_Charalloc(size_type count);

Parameter

count
Jumlah elemen dalam array yang akan dialokasikan.

Tampilkan Nilai

Penunjuk ke objek yang dialokasikan.

Keterangan

Fungsi anggota ini digunakan oleh kontainer saat dikompilasi dengan pengkompilasi yang tidak dapat mengkompilasi pengikatan ulang. Ini mengimplementasikan _Charalloc untuk alokator yang ditentukan pengguna dengan mengembalikan hasil panggilan ke allocate fungsi filter sinkronisasi.

allocator_base::_Chardealloc

Membebaskan penyimpanan untuk array yang berisi elemen jenis char.

void _Chardealloc(void* ptr, size_type count);

Parameter

ptr
Penunjuk ke objek pertama yang akan dibatalkan alokasinya dari penyimpanan.

count
Jumlah objek yang akan dibatalkan alokasinya dari penyimpanan.

Keterangan

Fungsi anggota ini digunakan oleh kontainer saat dikompilasi dengan pengkompilasi yang tidak dapat mengkompilasi pengikatan ulang. Ini mengimplementasikan _Chardealloc untuk alokator yang ditentukan pengguna dengan memanggil deallocate fungsi filter sinkronisasi. Ptr pointer harus telah dikembalikan sebelumnya oleh panggilan ke _Charalloc untuk objek alokator yang dibandingkan dengan *this, mengalokasikan objek array dengan ukuran dan jenis yang sama. _Chardealloc tidak pernah melemparkan pengecualian.

allocator_base::address

Menemukan alamat objek yang nilainya ditentukan.

pointer address(reference val);

const_pointer address(const_reference val);

Parameter

Val
Nilai const atau nonconst objek yang alamatnya sedang dicari.

Tampilkan Nilai

Pointer const atau nonconst ke objek yang ditemukan, masing-masing, nilai const atau nonconst.

Keterangan

Fungsi anggota ini diimplementasikan untuk alokator yang ditentukan pengguna dengan mengembalikan &val.

allocator_base::alokasikan

Mengalokasikan blok memori yang cukup besar untuk menyimpan setidaknya beberapa elemen yang ditentukan.

template <class Other>
pointer allocate(size_type _Nx, const Other* _Hint = 0);

pointer allocate(size_type _Nx);

Parameter

_Nx
Jumlah elemen dalam array yang akan dialokasikan.

_Petunjuk
Parameter diabaikan

Tampilkan Nilai

Penunjuk ke objek yang dialokasikan.

Keterangan

Fungsi anggota mengimplementasikan alokasi memori untuk alokator yang ditentukan pengguna dengan mengembalikan hasil panggilan ke allocate fungsi filter sinkronisasi jenis Jenis * jika _Nx == 1, jika tidak dengan mengembalikan hasil panggilan untuk operator new(_Nx * sizeof(Type)) ditransmisikan ke jenis *.

allocator_base::allocator_base

Membuat objek jenis allocator_base.

allocator_base();

template <class Other>
allocator_base(const allocator_base<Other, Sync>& right);

Parameter

right
Objek alokator yang akan disalin.

Keterangan

Konstruktor pertama membuat instans allocator_base . Konstruktor kedua membangun instans sehingga untuk instans allocator_base aapa pun allocator_base<Type, _Sync> , allocator_base<Type, Sync>(allocator_base<Other, Sync>(a)) == a.

allocator_base::const_pointer

Jenis yang menyediakan pointer konstan ke jenis objek yang dikelola oleh alokator.

typedef const Type *const_pointer;

allocator_base::const_reference

Jenis yang menyediakan referensi konstan ke jenis objek yang dikelola oleh alokator.

typedef const Type& const_reference;

allocator_base::construct

Membuat jenis objek tertentu pada alamat tertentu yang diinisialisasi dengan nilai tertentu.

void construct(pointer ptr, const Type& val);

Parameter

ptr
Penunjuk ke lokasi tempat objek akan dibangun.

Val
Nilai tempat objek yang sedang dibangun akan diinisialisasi.

Keterangan

Fungsi anggota ini diimplementasikan untuk alokator yang ditentukan pengguna dengan memanggil new((void*)ptr Type(val).

allocator_base::d eallocate

Membebaskan jumlah objek tertentu dari penyimpanan yang dimulai pada posisi tertentu.

void deallocate(pointer ptr, size_type _Nx);

Parameter

ptr
Penunjuk ke objek pertama yang akan dibatalkan alokasinya dari penyimpanan.

_Nx
Jumlah objek yang akan dibatalkan alokasinya dari penyimpanan.

Keterangan

Fungsi anggota ini diimplementasikan untuk alokator yang ditentukan pengguna dengan memanggil deallocate(ptr) filter sinkronisasi jika _Nx == 1, jika tidak dengan memanggil operator delete(_Nx * ptr)Sync .

allocator_base::d estroy

Memanggil destruktor objek tanpa membatalkan alokasi memori tempat objek disimpan.

void destroy(pointer ptr);

Parameter

ptr
Pointer yang menunjuk alamat objek yang akan dihancurkan.

Keterangan

Fungsi anggota ini diimplementasikan untuk alokator yang ditentukan pengguna dengan memanggil ptr->~Type().

allocator_base::d ifference_type

Jenis integral yang ditandatangani yang dapat mewakili perbedaan antara nilai pointer dengan jenis objek yang dikelola oleh alokator.

typedef std::ptrdiff_t difference_type;

allocator_base::max_size

Mengembalikan jumlah elemen jenis Type yang dapat dialokasikan oleh objek alokator kelas sebelum memori bebas habis.

size_type max_size() const;

Tampilkan Nilai

Jumlah elemen yang dapat dialokasikan.

Keterangan

Fungsi anggota ini diimplementasikan untuk alokator yang ditentukan pengguna dengan mengembalikan (size_t)-1 / sizeof(Type) jika 0 < (size_t)-1 / sizeof(Type), jika tidak 1.

allocator_base::p ointer

Jenis yang menyediakan penunjuk ke jenis objek yang dikelola oleh alokator.

typedef Type *pointer;

allocator_base::reference

Jenis yang menyediakan referensi ke jenis objek yang dikelola oleh alokator.

typedef Type& reference;

allocator_base::size_type

Jenis integral yang tidak ditandatangani yang dapat mewakili panjang urutan apa pun yang dapat dialokasikan objek jenis allocator_base .

typedef std::size_t size_type;

allocator_base::value_type

Jenis yang dikelola oleh alokator.

typedef Type value_type;

Lihat juga

<alokator>