Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu sınıf, Kırmızı-Siyah ağaç oluşturmak ve kullanmak için yöntemler sağlar.
Sözdizimi
template <typename K,
typename V,
class KTraits = CElementTraits<K>,
class VTraits = CElementTraits<V>>
class CRBTree
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
Genel Tür Tanımları
| Veri Akışı Adı | Açıklama |
|---|---|
| CRBTree::KINARGTYPE | Bir anahtar giriş bağımsız değişkeni olarak geçirildiğinde kullanılan tür. |
| CRBTree::KOUTARGTYPE | Bir anahtar çıkış bağımsız değişkeni olarak döndürülürken kullanılan tür. |
| CRBTree::VINARGTYPE | Bir değer giriş bağımsız değişkeni olarak geçirildiğinde kullanılan tür. |
| CRBTree::VOUTARGTYPE | Bir değer çıkış bağımsız değişkeni olarak geçirildiğinde kullanılan tür. |
Genel Sınıflar
| Veri Akışı Adı | Açıklama |
|---|---|
| CRBTree::CPair Sınıfı | Anahtar ve değer öğelerini içeren bir sınıf. |
Ortak Oluşturucular
| Veri Akışı Adı | Açıklama |
|---|---|
| CRBTree::~CRBTree | Yok edici. |
Genel Yöntemler
| Veri Akışı Adı | Açıklama |
|---|---|
| CRBTree::FindFirstKeyAfter | Sonraki kullanılabilir anahtarı kullanan öğenin konumunu bulmak için bu yöntemi çağırın. |
| CRBTree::GetAt | Öğeyi ağaçta belirli bir konumda almak için bu yöntemi çağırın. |
| CRBTree::GetCount | Ağaçtaki öğe sayısını almak için bu yöntemi çağırın. |
| CRBTree::GetHeadPosition | Ağacın başındaki öğenin konum değerini almak için bu yöntemi çağırın. |
| CRBTree::GetKeyAt | Anahtarı ağaçtaki belirli bir konumdan almak için bu yöntemi çağırın. |
| CRBTree::GetNext | nesnesinde CRBTree depolanan bir öğenin işaretçisini almak ve konumu sonraki öğeye ilerletmek için bu yöntemi çağırın. |
| CRBTree::GetNextAssoc | Eşlemede depolanan bir öğenin anahtarını ve değerini almak ve konumu sonraki öğeye ilerletmek için bu yöntemi çağırın. |
| CRBTree::GetNextKey | Ağaçta depolanan bir öğenin anahtarını almak ve konumu sonraki öğeye ilerletmek için bu yöntemi çağırın. |
| CRBTree::GetNextValue | Ağaçta depolanan bir öğenin değerini almak ve konumu sonraki öğeye ilerletmek için bu yöntemi çağırın. |
| CRBTree::GetPrev | nesnesinde depolanan bir öğenin işaretçisini almak için bu yöntemi çağırın CRBTree ve ardından konumu önceki öğeye güncelleştirin. |
| CRBTree::GetTailPosition | Ağacın kuyruğundaki öğenin konum değerini almak için bu yöntemi çağırın. |
| CRBTree::GetValueAt | Nesnede belirli bir konumda depolanan değeri almak için bu yöntemi çağırın CRBTree . |
| CRBTree::IsEmpty | Boş bir ağaç nesnesini test etmek için bu yöntemi çağır. |
| CRBTree::RemoveAll | Nesneden tüm öğeleri kaldırmak için bu yöntemi çağırın CRBTree . |
| CRBTree::RemoveAt | nesnesinde verilen konumdaki öğesini kaldırmak için bu yöntemi çağırın CRBTree . |
| CRBTree::SetValueAt | Nesnede belirli bir konumda depolanan değeri değiştirmek için bu yöntemi çağırın CRBTree . |
Açıklamalar
Kırmızı-Siyah ağaç, düğüm başına ek bilgi biti kullanarak "dengeli" kalmasını sağlayan, yani ağaç yüksekliğinin orantısız olarak büyümediğinden ve performansı etkilemediğinden emin olan ikili arama ağacıdır.
Bu şablon sınıfı CRBMap ve CRBMultiMap tarafından kullanılacak şekilde tasarlanmıştır. Bu türetilmiş sınıfları oluşturan yöntemlerin büyük bir kısmı tarafından CRBTreesağlanır.
Ç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ı.
Gereksinimler
Üst bilgi: atlcoll.h
CRBTree::CPair Sınıfı
Anahtar ve değer öğelerini içeren bir sınıf.
class CPair : public __POSITION
Açıklamalar
Bu sınıf, ağaç yapısında depolanan anahtar ve değer öğelerine erişmek için CRBTree::GetAt, CRBTree::GetNext ve CRBTree::GetPrev yöntemleri tarafından kullanılır.
Üyeler şunlardır:
| Veri üyesi | Açıklama |
|---|---|
m_key |
Anahtar öğesini depolayarak veri üyesi. |
m_value |
Değer öğesini depolayarak veri üyesi. |
CRBTree::~CRBTree
Yok edici.
~CRBTree() throw();
Açıklamalar
Ayrılan tüm kaynakları serbesttir. Tüm öğeleri silmek için CRBTree::RemoveAll'ı çağırır.
CRBTree::FindFirstKeyAfter
Sonraki kullanılabilir anahtarı kullanan öğenin konumunu bulmak için bu yöntemi çağırın.
POSITION FindFirstKeyAfter(KINARGTYPE key) const throw();
Parametreler
key
Anahtar değeri.
Dönüş Değeri
Bir sonraki kullanılabilir anahtarı kullanan öğenin konum değerini döndürür. Başka öğe yoksa NULL döndürülür.
Açıklamalar
Bu yöntem, konum değerlerini önceden hesaplamak zorunda kalmadan ağacın çapraz geçişini kolaylaştırır.
CRBTree::GetAt
Öğeyi ağaçta belirli bir konumda almak için bu yöntemi çağırın.
CPair* GetAt(POSITION pos) throw();
const CPair* GetAt(POSITION pos) const throw();
void GetAt(POSITION pos, KOUTARGTYPE key, VOUTARGTYPE value) const;
Parametreler
Pos
Konum değeri.
key
Anahtarı alan değişken.
value
Değeri alan değişken.
Dönüş Değeri
İlk iki form bir CPair işaretçisi döndürür. Üçüncü form, verilen konum için bir anahtar ve değer alır.
Açıklamalar
Konum değeri daha önce CRBTree::GetHeadPosition veya CRBTree::GetTailPosition gibi bir yöntem çağrısıyla belirlenebilir.
Hata ayıklama derlemelerinde, pos NULL'a eşitse bir onaylama hatası oluşur.
CRBTree::GetCount
Ağaçtaki öğe sayısını almak için bu yöntemi çağırın.
size_t GetCount() const throw();
Dönüş Değeri
Ağaçta depolanan öğe sayısını (her anahtar/değer çifti bir öğedir) döndürür.
CRBTree::GetHeadPosition
Ağacın başındaki öğenin konum değerini almak için bu yöntemi çağırın.
POSITION GetHeadPosition() const throw();
Dönüş Değeri
Ağacın başındaki öğenin konum değerini döndürür.
Açıklamalar
tarafından GetHeadPosition döndürülen değer, ağaçtan geçiş yapmak ve değerleri almak için CRBTree::GetKeyAt veya CRBTree::GetNext gibi yöntemlerle kullanılabilir.
CRBTree::GetKeyAt
Anahtarı ağaçtaki belirli bir konumdan almak için bu yöntemi çağırın.
const K& GetKeyAt(POSITION pos) const throw();
Parametreler
Pos
Konum değeri.
Dönüş Değeri
Ağaçtaki konum konumunda depolanan anahtarı döndürür.
Açıklamalar
Pos geçerli bir konum değeri değilse, sonuçlar tahmin edilemez. Hata ayıklama derlemelerinde, pos NULL'a eşitse bir onaylama hatası oluşur.
CRBTree::GetNext
nesnesinde CRBTree depolanan bir öğenin işaretçisini almak ve konumu sonraki öğeye ilerletmek için bu yöntemi çağırın.
const CPair* GetNext(POSITION& pos) const throw();
CPair* GetNext(POSITION& pos) throw();
Parametreler
Pos
CRBTree::GetHeadPosition veya CRBTree::FindFirstKeyAfter gibi yöntemlere önceki bir çağrı tarafından döndürülen konum sayacı.
Dönüş Değeri
Ağaçtaki sonraki CPair değerine bir işaretçi döndürür.
Açıklamalar
Pos konum sayacı her çağrıdan sonra güncelleştirilir. Alınan öğe ağaçtaki son öğeyse, pos NULL olarak ayarlanır.
CRBTree::GetNextAssoc
Eşlemede depolanan bir öğenin anahtarını ve değerini almak ve konumu sonraki öğeye ilerletmek için bu yöntemi çağırın.
void GetNextAssoc(
POSITION& pos,
KOUTARGTYPE key,
VOUTARGTYPE value) const;
Parametreler
Pos
CRBTree::GetHeadPosition veya CRBTree::FindFirstKeyAfter gibi yöntemlere önceki bir çağrı tarafından döndürülen konum sayacı.
key
Ağaç anahtarının türünü belirten şablon parametresi.
value
Ağaç değerinin türünü belirten şablon parametresi.
Açıklamalar
Pos konum sayacı her çağrıdan sonra güncelleştirilir. Alınan öğe ağaçtaki son öğeyse, pos NULL olarak ayarlanır.
CRBTree::GetNextKey
Ağaçta depolanan bir öğenin anahtarını almak ve konumu sonraki öğeye ilerletmek için bu yöntemi çağırın.
const K& GetNextKey(POSITION& pos) const throw();
Parametreler
Pos
CRBTree::GetHeadPosition veya CRBTree::FindFirstKeyAfter gibi yöntemlere önceki bir çağrı tarafından döndürülen konum sayacı.
Dönüş Değeri
Ağaçtaki bir sonraki anahtara başvuru döndürür.
Açıklamalar
Geçerli konum sayacını ( pos) güncelleştirir. Ağaçta başka girdi yoksa konum sayacı NULL olarak ayarlanır.
CRBTree::GetNextValue
Ağaçta depolanan bir öğenin değerini almak ve konumu sonraki öğeye ilerletmek için bu yöntemi çağırın.
const V& GetNextValue(POSITION& pos) const throw();
V& GetNextValue(POSITION& pos) throw();
Parametreler
Pos
CRBTree::GetHeadPosition veya CRBTree::FindFirstKeyAfter gibi yöntemlere önceki bir çağrı tarafından döndürülen konum sayacı.
Dönüş Değeri
Ağaçtaki bir sonraki değere başvuru döndürür.
Açıklamalar
Geçerli konum sayacını ( pos) güncelleştirir. Ağaçta başka girdi yoksa konum sayacı NULL olarak ayarlanır.
CRBTree::GetPrev
nesnesinde depolanan bir öğenin işaretçisini almak için bu yöntemi çağırın CRBTree ve ardından konumu önceki öğeye güncelleştirin.
const CPair* GetPrev(POSITION& pos) const throw();
CPair* GetPrev(POSITION& pos) throw();
Parametreler
Pos
CRBTree::GetHeadPosition veya CRBTree::FindFirstKeyAfter gibi yöntemlere önceki bir çağrı tarafından döndürülen konum sayacı.
Dönüş Değeri
Ağaçta depolanan önceki CPair değerinin işaretçisini döndürür.
Açıklamalar
Geçerli konum sayacını ( pos) güncelleştirir. Ağaçta başka girdi yoksa konum sayacı NULL olarak ayarlanır.
CRBTree::GetTailPosition
Ağacın kuyruğundaki öğenin konum değerini almak için bu yöntemi çağırın.
POSITION GetTailPosition() const throw();
Dönüş Değeri
Ağacın kuyruğundaki öğenin konum değerini döndürür.
Açıklamalar
tarafından GetTailPosition döndürülen değer, ağaçtan geçiş yapmak ve değerleri almak için CRBTree::GetKeyAt veya CRBTree::GetPrev gibi yöntemlerle kullanılabilir.
CRBTree::GetValueAt
Nesnede belirli bir konumda depolanan değeri almak için bu yöntemi çağırın CRBTree .
const V& GetValueAt(POSITION pos) const throw();
V& GetValueAt(POSITION pos) throw();
Parametreler
Pos
CRBTree::GetHeadPosition veya CRBTree::FindFirstKeyAfter gibi yöntemlere önceki bir çağrı tarafından döndürülen konum sayacı.
Dönüş Değeri
nesnesinde verilen konumda depolanan değere CRBTree başvuru döndürür.
CRBTree::IsEmpty
Boş bir ağaç nesnesini test etmek için bu yöntemi çağır.
bool IsEmpty() const throw();
Dönüş Değeri
Ağaç boşsa TRUE, değilse YANLIŞ döndürür.
CRBTree::KINARGTYPE
Bir anahtar giriş bağımsız değişkeni olarak geçirildiğinde kullanılan tür.
typedef KTraits::INARGTYPE KINARGTYPE;
CRBTree::KOUTARGTYPE
Bir anahtar çıkış bağımsız değişkeni olarak döndürülürken kullanılan tür.
typedef KTraits::OUTARGTYPE KOUTARGTYPE;
CRBTree::RemoveAll
Nesneden tüm öğeleri kaldırmak için bu yöntemi çağırın CRBTree .
void RemoveAll() throw();
Açıklamalar
Öğeleri depolamak CRBTree için kullanılan belleği boşaltarak nesnesini temizler.
CRBTree::RemoveAt
nesnesinde verilen konumdaki öğesini kaldırmak için bu yöntemi çağırın CRBTree .
void RemoveAt(POSITION pos) throw();
Parametreler
Pos
CRBTree::GetHeadPosition veya CRBTree::FindFirstKeyAfter gibi yöntemlere önceki bir çağrı tarafından döndürülen konum sayacı.
Açıklamalar
Belirtilen konumda depolanan anahtar/değer çiftini kaldırır. öğesini depolamak için kullanılan bellek serbesttir. Pos tarafından başvurulan POSITION geçersiz olur ve ağaçtaki diğer öğelerin POSITION değeri geçerli kalırken, aynı sırayı korumaları gerekmez.
CRBTree::SetValueAt
Nesnede belirli bir konumda depolanan değeri değiştirmek için bu yöntemi çağırın CRBTree .
void SetValueAt(POSITION pos, VINARGTYPE value);
Parametreler
Pos
CRBTree::GetHeadPosition veya CRBTree::FindFirstKeyAfter gibi yöntemlere önceki bir çağrı tarafından döndürülen konum sayacı.
value
Nesneye CRBTree eklenecek değer.
Açıklamalar
Nesnede belirtilen konumda CRBTree depolanan değer öğesini değiştirir.
CRBTree::VINARGTYPE
Bir değer giriş bağımsız değişkeni olarak geçirildiğinde kullanılan tür.
typedef VTraits::INARGTYPE VINARGTYPE;
CRBTree::VOUTARGTYPE
Bir değer çıkış bağımsız değişkeni olarak geçirildiğinde kullanılan tür.
typedef VTraits::OUTARGTYPE VOUTARGTYPE;