Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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;