Aracılığıyla paylaş


CRBTree Sınıfı

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;

Ayrıca bkz.

Sınıfa Genel Bakış