Bagikan melalui


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

CRBTree

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