Kelas CRBMap
Kelas ini mewakili struktur pemetaan, menggunakan pohon biner Merah-Hitam.
Sintaks
template <typename K,
typename V,
class KTraits = CElementTraits<K>,
class VTraits = CElementTraits<V>>
class CRBMap : public CRBTree<K, V, KTraits, VTraits>
Parameter
K
Jenis elemen kunci.
V
Jenis elemen nilai.
KTraits
Kode yang digunakan untuk menyalin atau memindahkan elemen kunci. Lihat Kelas CElementTraits untuk detail selengkapnya.
VTraits
Kode yang digunakan untuk menyalin atau memindahkan elemen nilai.
Anggota
Konstruktor Publik
Nama | Deskripsi |
---|---|
CRBMap::CRBMap | Konstruktor. |
CRBMap::~CRBMap | Destruktor. |
Metode Publik
Nama | Deskripsi |
---|---|
CRBMap::Lookup | Panggil metode ini untuk mencari kunci atau nilai dalam CRBMap objek. |
CRBMap::RemoveKey | Panggil metode ini untuk menghapus elemen dari CRBMap objek, mengingat kuncinya. |
CRBMap::SetAt | Panggil metode ini untuk menyisipkan pasangan elemen ke dalam peta. |
Keterangan
CRBMap
memberikan dukungan untuk array pemetaan dari jenis tertentu, mengelola array elemen kunci yang diurutkan dan nilai terkaitnya. Setiap kunci hanya dapat memiliki satu nilai terkait. Elemen (terdiri dari kunci dan nilai) disimpan dalam struktur pohon biner, menggunakan metode CRBMap::SetAt . Elemen dapat dihapus menggunakan metode CRBMap::RemoveKey , yang menghapus elemen dengan nilai kunci yang diberikan.
Melintasi pohon dimungkinkan dengan metode seperti CRBTree::GetHeadPosition, CRBTree::GetNext, dan CRBTree::GetNextValue.
Parameter KTraits dan VTraits adalah kelas sifat yang berisi kode tambahan apa pun yang diperlukan untuk menyalin atau memindahkan elemen.
CRBMap
berasal dari CRBTree, yang mengimplementasikan pohon biner menggunakan algoritma Red-Black. CRBMultiMap adalah variasi yang memungkinkan beberapa nilai untuk setiap kunci. Ini juga berasal dari CRBTree
, dan begitu berbagi banyak fitur dengan CRBMap
.
Alternatif untuk keduanya CRBMap
dan ditawarkan oleh kelas CAtlMapCRBMultiMap
. Ketika hanya sejumlah kecil elemen yang perlu disimpan, pertimbangkan untuk menggunakan kelas CSimpleMap sebagai gantinya.
Untuk diskusi yang lebih lengkap tentang berbagai kelas koleksi dan fitur serta karakteristik performanya, lihat Kelas Koleksi ATL.
Hierarki Warisan
CRBMap
Persyaratan
Header: atlcoll.h
CRBMap::CRBMap
Konstruktor.
explicit CRBMap(size_t nBlockSize = 10) throw();
Parameter
nBlockSize
Ukuran blok.
Keterangan
Parameter nBlockSize adalah ukuran jumlah memori yang dialokasikan saat elemen baru diperlukan. Ukuran blok yang lebih besar mengurangi panggilan ke rutinitas alokasi memori, tetapi menggunakan lebih banyak sumber daya. Default akan mengalokasikan ruang untuk 10 elemen pada satu waktu.
Lihat dokumentasi untuk kelas dasar CRBTree untuk informasi tentang metode lain yang tersedia.
Contoh
// Define a map object which has an
// integer key, a double value, and a
// block size of 5
CRBMap<int, double> myMap(5);
CRBMap::~CRBMap
Destruktor.
~CRBMap() throw();
Keterangan
Membebaskan sumber daya yang dialokasikan.
Lihat dokumentasi untuk kelas dasar CRBTree untuk informasi tentang metode lain yang tersedia.
CRBMap::Lookup
Panggil metode ini untuk mencari kunci atau nilai dalam CRBMap
objek.
bool Lookup(KINARGTYPE key, VOUTARGTYPE value) const throw(...);
const CPair* Lookup(KINARGTYPE key) const throw();
CPair* Lookup(KINARGTYPE key) throw();
Parameter
kunci
Menentukan kunci yang mengidentifikasi elemen yang akan dicari.
value
Variabel yang menerima nilai pencarian.
Tampilkan Nilai
Bentuk pertama metode mengembalikan true jika kunci ditemukan, jika tidak salah. Formulir kedua dan ketiga mengembalikan penunjuk ke CPair.
Keterangan
Lihat dokumentasi untuk kelas dasar CRBTree untuk informasi tentang metode lain yang tersedia.
Contoh
// Look up the value for a key of 0
double v;
myMap.Lookup(0,v);
CRBMap::RemoveKey
Panggil metode ini untuk menghapus elemen dari CRBMap
objek, mengingat kuncinya.
bool RemoveKey(KINARGTYPE key) throw();
Parameter
kunci
Kunci yang sesuai dengan pasangan elemen yang ingin Anda hapus.
Tampilkan Nilai
Mengembalikan true jika kunci ditemukan dan dihapus, false pada kegagalan.
Keterangan
Lihat dokumentasi untuk kelas dasar CRBTree untuk informasi tentang metode lain yang tersedia.
Contoh
// Remove an element, based on the key of 0
ATLVERIFY(myMap.RemoveKey(0) == true);
CRBMap::SetAt
Panggil metode ini untuk menyisipkan pasangan elemen ke dalam peta.
POSITION SetAt(
KINARGTYPE key,
VINARGTYPE value) throw(...);
Parameter
kunci
Nilai kunci untuk ditambahkan ke CRBMap
objek.
value
Nilai yang akan ditambahkan ke CRBMap
objek.
Tampilkan Nilai
Mengembalikan posisi pasangan elemen kunci/nilai dalam CRBMap
objek.
Keterangan
SetAt
menggantikan elemen yang ada jika kunci yang cocok ditemukan. Jika kunci tidak ditemukan, pasangan kunci/nilai baru akan dibuat.
Lihat dokumentasi untuk kelas dasar CRBTree untuk informasi tentang metode lain yang tersedia.
Contoh
// Add an element to the map, with a key of 0
myMap.SetAt(0,1.1);
Lihat juga
Kelas CRBTree
Kelas CAtlMap
Kelas CRBMultiMap
Gambaran Umum Kelas