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 CRBTree
türetilir ve bu nedenle ile CRBMap
birç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
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ış