Aracılığıyla paylaş


CRBMap Sınıfı

Bu sınıf, Kırmızı-Siyah ikili ağaç kullanarak bir eşleme yapısını temsil eder.

Sözdizimi

template <typename K,
          typename V,
          class KTraits = CElementTraits<K>,
          class VTraits = CElementTraits<V>>
class CRBMap : public CRBTree<K, V, KTraits, VTraits>

Parametreler

K
Anahtar öğe türü.

V
Değer öğesi türü.

KTraits
Anahtar öğeleri kopyalamak veya taşımak için kullanılan kod. Daha fazla ayrıntı için bkz . CElementTraits Sınıfı .

VTraits
Değer öğelerini kopyalamak veya taşımak için kullanılan kod.

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
CRBMap::CRBMap Oluşturucu.
CRBMap::~CRBMap Yok edici.

Genel Yöntemler

Veri Akışı Adı Açıklama
CRBMap::Lookup Nesnedeki anahtarları veya değerleri aramak için bu yöntemi çağırın CRBMap .
CRBMap::RemoveKey Anahtarı verilen nesneden CRBMap bir öğeyi kaldırmak için bu yöntemi çağırın.
CRBMap::SetAt Eşlemeye bir öğe çifti eklemek için bu yöntemi çağırın.

Açıklamalar

CRBMap , belirli bir türe sahip eşleme dizisi için destek sağlar ve sıralı bir anahtar öğe dizisini ve bunların ilişkili değerlerini yönetir. Her anahtarın yalnızca bir ilişkili değeri olabilir. Öğeler (anahtar ve değerden oluşan), CRBMap::SetAt yöntemi kullanılarak ikili ağaç yapısında depolanır. Öğeler CRBMap::RemoveKey yöntemi kullanılarak kaldırılabilir ve bu yöntem öğeyi verilen anahtar değeriyle siler.

CrBTree::GetHeadPosition, CRBTree::GetNext ve CRBTree::GetNextValue gibi yöntemlerle ağaç geçişi yapılabilir.

KTraits ve VTraits parametreleri, öğeleri kopyalamak veya taşımak için gereken ek kodları içeren nitelik sınıflarıdır.

CRBMap, Kırmızı-Siyah algoritmasını kullanarak ikili ağaç uygulayan CRBTree'den türetilir. CRBMultiMap , her anahtar için birden çok değere izin veren bir çeşitlemedir. Bu da 'den CRBTreetüretilir ve bu nedenle ile CRBMapbirçok özellik paylaşır.

hem hem de CRBMap için bir alternatif CAtlMap sınıfı tarafından CRBMultiMap sunulur. Yalnızca az sayıda öğe depolanması gerektiğinde, bunun yerine CSimpleMap sınıfını kullanmayı göz önünde bulundurun.

Çeşitli koleksiyon sınıfları ve bunların özellikleri ile performans özellikleri hakkında daha ayrıntılı bilgi için bkz . ATL Koleksiyon Sınıfları.

Devralma Hiyerarşisi

CRBTree

CRBMap

Gereksinimler

Üst bilgi: atlcoll.h

CRBMap::CRBMap

Oluşturucu.

explicit CRBMap(size_t nBlockSize = 10) throw();

Parametreler

nBlockSize
Blok boyutu.

Açıklamalar

nBlockSize parametresi, yeni bir öğe gerektiğinde ayrılan bellek miktarının ölçüsüdür. Daha büyük blok boyutları bellek ayırma yordamlarına yapılan çağrıları azaltır, ancak daha fazla kaynak kullanır. Varsayılan değer, aynı anda 10 öğe için alan ayırır.

Kullanılabilir diğer yöntemler hakkında bilgi için CRBTree temel sınıfı belgelerine bakın.

Örnek

// 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

Yok edici.

~CRBMap() throw();

Açıklamalar

Ayrılan tüm kaynakları serbesttir.

Kullanılabilir diğer yöntemler hakkında bilgi için CRBTree temel sınıfı belgelerine bakın.

CRBMap::Lookup

Nesnedeki anahtarları veya değerleri aramak için bu yöntemi çağırın CRBMap .

bool Lookup(KINARGTYPE key, VOUTARGTYPE value) const throw(...);
const CPair* Lookup(KINARGTYPE key) const throw();
CPair* Lookup(KINARGTYPE key) throw();

Parametreler

key
Aranacak öğeyi tanımlayan anahtarı belirtir.

value
Arama değerini alan değişken.

Dönüş Değeri

Yöntemin ilk biçimi, anahtar bulunursa true, aksi takdirde false döndürür. İkinci ve üçüncü formlar bir CPair işaretçisi döndürür.

Açıklamalar

Kullanılabilir diğer yöntemler hakkında bilgi için CRBTree temel sınıfı belgelerine bakın.

Örnek

// Look up the value for a key of 0
double v;
myMap.Lookup(0,v);

CRBMap::RemoveKey

Anahtarı verilen nesneden CRBMap bir öğeyi kaldırmak için bu yöntemi çağırın.

bool RemoveKey(KINARGTYPE key) throw();

Parametreler

key
Kaldırmak istediğiniz öğe çiftine karşılık gelen anahtar.

Dönüş Değeri

Anahtar bulunur ve kaldırılırsa true, hatada false döndürür.

Açıklamalar

Kullanılabilir diğer yöntemler hakkında bilgi için CRBTree temel sınıfı belgelerine bakın.

Örnek

// Remove an element, based on the key of 0
ATLVERIFY(myMap.RemoveKey(0) == true);

CRBMap::SetAt

Eşlemeye bir öğe çifti eklemek için bu yöntemi çağırın.

POSITION SetAt(
    KINARGTYPE key,
    VINARGTYPE value) throw(...);

Parametreler

key
Nesneye CRBMap eklenecek anahtar değeri.

value
Nesneye CRBMap eklenecek değer.

Dönüş Değeri

Nesnedeki anahtar/değer öğesi çiftinin CRBMap konumunu döndürür.

Açıklamalar

SetAt eşleşen bir anahtar bulunursa mevcut bir öğeyi değiştirir. Anahtar bulunamazsa yeni bir anahtar/değer çifti oluşturulur.

Kullanılabilir diğer yöntemler hakkında bilgi için CRBTree temel sınıfı belgelerine bakın.

Örnek

// Add an element to the map, with a key of 0
myMap.SetAt(0,1.1);

Ayrıca bkz.

CRBTree Sınıfı
CAtlMap Sınıfı
CRBMultiMap Sınıfı
Sınıfa Genel Bakış