Aracılığıyla paylaş


CObList Sınıf

Sıralı olarak veya işaretçi değeriyle erişilebilen sıralı tekil CObject olmayan işaretçi listelerini destekler.

Sözdizimi

class CObList : public CObject

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
CObList::CObList İşaretçiler için CObject boş bir liste oluşturur.

Genel Yöntemler

Veri Akışı Adı Açıklama
CObList::AddHead Listenin başına bir öğe (veya başka bir listedeki tüm öğeler) ekler (yeni bir kafa oluşturur).
CObList::AddTail Listenin kuyruğuna bir öğe (veya başka bir listedeki tüm öğeler) ekler (yeni bir kuyruk oluşturur).
CObList::Find İşaretçi değeri tarafından belirtilen öğenin konumunu alır.
CObList::FindIndex Sıfır tabanlı dizin tarafından belirtilen bir öğenin konumunu alır.
CObList::GetAt Öğeyi belirli bir konumda alır.
CObList::GetCount Bu listedeki öğelerin sayısını döndürür.
CObList::GetHead Listenin baş öğesini döndürür (boş olamaz).
CObList::GetHeadPosition Listenin baş öğesinin konumunu döndürür.
CObList::GetNext Yineleme için sonraki öğeyi alır.
CObList::GetPrev Yineleme için önceki öğeyi alır.
CObList::GetSize Bu listedeki öğelerin sayısını döndürür.
CObList::GetTail Listenin kuyruk öğesini döndürür (boş olamaz).
CObList::GetTailPosition Listenin kuyruk öğesinin konumunu döndürür.
CObList::InsertAfter Belirli bir konumdan sonra yeni bir öğe ekler.
CObList::InsertBefore Belirli bir konumdan önce yeni bir öğe ekler.
CObList::IsEmpty Boş liste koşulu için test (öğe yok).
CObList::RemoveAll Bu listeden tüm öğeleri kaldırır.
CObList::RemoveAt Bu listeden konuma göre belirtilen bir öğeyi kaldırır.
CObList::RemoveHead öğesini listenin başından kaldırır.
CObList::RemoveTail öğesini listenin kuyruğundan kaldırır.
CObList::SetAt Öğesini belirli bir konumda ayarlar.

Açıklamalar

CObList listeler, ikiye kat bağlantılı listeler gibi davranır.

Türündeki POSITION bir değişken, listenin anahtarıdır. Bir POSITION değişkeni hem bir listeyi sıralı olarak çapraz geçiş yapmak için yineleyici olarak hem de yer işareti olarak kullanabilirsiniz. Ancak konum, dizinle aynı değildir.

Öğe ekleme, liste başında, kuyrukta ve bilinen POSITIONbir öğesinde çok hızlıdır. Bir öğeyi değere veya dizine göre aramak için sıralı arama gereklidir. Liste uzunsa bu arama yavaş olabilir.

CObList öğelerinin seri hale getirilmesini IMPLEMENT_SERIAL ve dökümünün atılması için makroyu birleştirir. bir işaretçi listesi CObject , aşırı yüklenmiş ekleme işleciyle veya üye işleviyle bir arşivde Serialize depolanıyorsa, her CObject öğe sırayla serileştirilir.

Listedeki tek tek CObject öğelerin dökümünü almanız gerekiyorsa döküm bağlamının derinliğini 1 veya daha büyük olarak ayarlamanız gerekir.

Bir CObList nesne silindiğinde veya öğeleri kaldırıldığında, başvuruda bulundukları nesneler değil, yalnızca CObject işaretçiler kaldırılır.

kendi sınıflarınızı'dan CObListtüretebilirsiniz. öğesinden türetilen nesnelere işaretçileri tutmak için tasarlanan CObjectyeni liste sınıfınız yeni veri üyeleri ve yeni üye işlevleri ekler. Herhangi bir CObject işaretçinin eklenmesine izin verdiğinden, sonuçta elde edilen listenin tam olarak tür güvenli olmadığını unutmayın.

Not

Listeyi seri hale getirmek istiyorsanız, türetilmiş sınıfınızın uygulamasında makroyu kullanmanız IMPLEMENT_SERIAL gerekir.

kullanma CObListhakkında daha fazla bilgi için Koleksiyonlar makalesine bakın.

Devralma Hiyerarşisi

CObject

CObList

Gereksinimler

Üstbilgi: afxcoll.h

CObList::AddHead

Bu listenin başına yeni bir öğe veya öğe listesi ekler.

POSITION AddHead(CObject* newElement);
void AddHead(CObList* pNewList);

Parametreler

newElement
Bu CObject listeye eklenecek işaretçi.

pNewList
Başka bir CObList listenin işaretçisi. içindeki pNewList öğeler bu listeye eklenir.

Dönüş Değeri

İlk sürüm, POSITION yeni eklenen öğenin değerini döndürür.

Aşağıdaki tabloda, benzeri CObList::AddHeaddiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CPtrList POSITION AddHead( void * newElement );

void AddHead( CPtrList * pNewList );
CStringList POSITION AddHead(const CString& newElement );

POSITION AddHead(LPCTSTR newElement );

void AddHead(CStringList * pNewList );

Açıklamalar

Liste işlemden önce boş olabilir.

Örnek

Sınıfın CAge listesi için bkzCObList::CObList.

CObList list;
list.AddHead(new CAge(21)); // 21 is now at head.
list.AddHead(new CAge(40)); // 40 replaces 21 at head.
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("AddHead example: ") << &list << _T("\n");
#endif      

Bu programın sonuçları aşağıdaki gibidir:

AddHead example: A CObList with 2 elements
a CAge at $44A8 40
a CAge at $442A 21

CObList::AddTail

Bu listenin kuyruğuna yeni bir öğe veya öğe listesi ekler.

POSITION AddTail(CObject* newElement);
void AddTail(CObList* pNewList);

Parametreler

newElement
Bu CObject listeye eklenecek işaretçi.

pNewList
Başka bir CObList listenin işaretçisi. içindeki pNewList öğeler bu listeye eklenir.

Dönüş Değeri

İlk sürüm, POSITION yeni eklenen öğenin değerini döndürür.

Açıklamalar

Liste işlemden önce boş olabilir.

Aşağıdaki tabloda, benzeri CObList::AddTaildiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CPtrList POSITION AddTail( void * newElement );

void AddTail( CPtrList * pNewList );
CStringList POSITION AddTail( const CString& newElement );

POSITION AddTail( LPCTSTR newElement );

void AddTail( CStringList * pNewList );

Örnek

Sınıfın CAge listesi için bkzCObList::CObList.

CObList list;
list.AddTail(new CAge(21));
list.AddTail(new CAge(40)); // List now contains (21, 40).
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("AddTail example: ") << &list << _T("\n");
#endif      

Bu programın sonuçları aşağıdaki gibidir:

AddTail example: A CObList with 2 elements
a CAge at $444A 21
a CAge at $4526 40

CObList::CObList

Boş CObject bir işaretçi listesi oluşturur.

CObList(INT_PTR nBlockSize = 10);

Parametreler

nBlockSize
Listeyi genişletmek için bellek ayırma ayrıntı düzeyi.

Açıklamalar

Liste büyüdükçe bellek girdi birimlerinde nBlockSize ayrılır. Bellek ayırma başarısız olursa, bir CMemoryException oluşturulur.

Aşağıdaki tabloda, benzeri CObList::CObListdiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CPtrList CPtrList( INT_PTR nBlockSize = 10 );
CStringList CStringList( INT_PTR nBlockSize = 10 );

Örnek

Aşağıda, tüm koleksiyon örneklerinde kullanılan türetilmiş sınıfın CAge listesi CObjectverilmiştir:

// Simple CObject-derived class for CObList and other examples
class CAge : public CObject
{
   DECLARE_SERIAL(CAge)
private:
   int   m_years;
public:
   CAge() { m_years = 0; }
   CAge(int age) { m_years = age; }
   CAge(const CAge& a) { m_years = a.m_years; } // Copy constructor
   void Serialize(CArchive& ar);
   void AssertValid() const;
   const CAge& operator=(const CAge& a)
   {
      m_years = a.m_years; return *this;
   }
   BOOL operator==(CAge a)
   {
      return m_years == a.m_years;
   }
#ifdef _DEBUG
   void Dump(CDumpContext& dc) const
   {
      CObject::Dump(dc);
      dc << m_years;
   }
#endif
};

Oluşturucu kullanımı örneği CObList aşağıda verilmiştir:

CObList list(20);  // List on the stack with blocksize = 20.

CObList* plist = new CObList; // List on the heap with default 
                              // blocksize.         

CObList::Find

Belirtilen CObject işaretçiyle eşleşen ilk CObject işaretçiyi bulmak için listede sıralı olarak aramalar.

POSITION Find(
    CObject* searchValue,
    POSITION startAfter = NULL) const;

Parametreler

searchValue
Bu listede bulunabilecek nesne işaretçisi.

startAfter
Aramanın başlangıç konumu.

Dönüş Değeri

POSITION Nesne bulunamazsa yineleme veya nesne işaretçisi alma NULL için kullanılabilecek bir değer.

Açıklamalar

İşaretçi değerlerinin, nesnelerin içeriğiyle değil karşılaştırıldığını unutmayın.

Aşağıdaki tabloda, benzeri CObList::Finddiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CPtrList POSITION Find( void *searchValue , POSITION startAfter = NULL ) const;
CStringList POSITION Find( LPCTSTR searchValue , POSITION startAfter = NULL ) const;

Örnek

Sınıfın CAge listesi için bkzCObList::CObList.

CObList list;
CAge* pa1;
CAge* pa2;
POSITION pos;
list.AddHead(pa1 = new CAge(21));
list.AddHead(pa2 = new CAge(40));    // List now contains (40, 21).
if ((pos = list.Find(pa1)) != NULL) // Hunt for pa1
{                                  // starting at head by default.
   ASSERT(*(CAge*)list.GetAt(pos) == CAge(21));
}

CObList::FindIndex

değerini nIndex listede dizin olarak kullanır.

POSITION FindIndex(INT_PTR nIndex) const;

Parametreler

nIndex
Bulunabilecek liste öğesinin sıfır tabanlı dizini.

Dönüş Değeri

POSITION Yineleme veya nesne işaretçisi alma için kullanılabilecek bir değer; NULL çok büyüksenIndex. (Çerçeve negatifse nIndex bir onay oluşturur.)

Açıklamalar

Listenin başından sıralı tarama başlatır ve n. öğesinde durduruluyor.

Aşağıdaki tabloda, benzeri CObList::FindIndexdiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CPtrList POSITION FindIndex( INT_PTR nIndex ) const;
CStringList POSITION FindIndex( INT_PTR nIndex ) const;

Örnek

Sınıfın CAge listesi için bkzCObList::CObList.

CObList list;
POSITION pos;

list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
if ((pos = list.FindIndex(0)) != NULL)
{
   ASSERT(*(CAge*)list.GetAt(pos) == CAge(40));
}

CObList::GetAt

Türündeki POSITION bir değişken, listenin anahtarıdır.

CObject*& GetAt(POSITION position);
const CObject*& GetAt(POSITION position) const;

Parametreler

position
Önceki POSITION GetHeadPosition veya Find üye işlev çağrısı tarafından döndürülen değer.

Dönüş Değeri

için dönüş değeri açıklamasına GetHeadbakın.

Açıklamalar

Dizinle aynı değildir ve bir değer üzerinde POSITION kendiniz çalışamazsınız. GetAt belirli bir konumla ilişkili işaretçiyi CObject alır.

Değerinizin POSITION listede geçerli bir konumu temsildiğinden emin olmanız gerekir. Geçersizse, Microsoft Foundation Sınıf Kitaplığı'nın Hata Ayıklama sürümü onaylar.

Aşağıdaki tabloda, benzeri CObList::GetAtdiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CPtrList const void*& GetAt( POSITION position ) const;

void*& GetAt( POSITION position );
CStringList const CString& GetAt( POSITION position ) const;

CString& GetAt( POSITION position );

Örnek

örneğine FindIndexbakın.

CObList::GetCount

Bu listedeki öğelerin sayısını alır.

INT_PTR GetCount() const;

Dönüş Değeri

Öğe sayısını içeren bir tamsayı değeri.

Aşağıdaki tabloda, benzeri CObList::GetCountdiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CPtrList INT_PTR GetCount( ) const;
CStringList INT_PTR GetCount( ) const;

Örnek

Sınıfın CAge listesi için bkzCObList::CObList.

CObList list;

list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
ASSERT(list.GetCount() == 2);

CObList::GetHead

Bu listenin CObject baş öğesini temsil eden işaretçiyi alır.

CObject*& GetHead();
const CObject*& GetHead() const;

Dönüş Değeri

Listeye bir işaretçi const CObListaracılığıyla erişilirse, GetHead bir CObject işaretçi döndürür. Bu, işlevin yalnızca atama deyiminin sağ tarafında kullanılmasını sağlar ve böylece listeyi değişiklikten korur.

Listeye doğrudan veya bir işaretçi CObListaracılığıyla erişilirse, GetHead işaretçiye CObject başvuru döndürür. Bu, işlevin atama deyiminin her iki tarafında kullanılmasını sağlar ve böylece liste girdilerinin değiştirilmesine izin verir.

Açıklamalar

çağrısından GetHeadönce listenin boş olmadığından emin olmanız gerekir. Liste boşsa, Microsoft Foundation Sınıf Kitaplığı'nın Hata Ayıklama sürümü onaylar. Listenin öğeler içerdiğini doğrulamak için kullanın IsEmpty .

Aşağıdaki tabloda, benzeri CObList::GetHeaddiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CPtrList const void*& GetHead( ) const; void*& GetHead( );
CStringList const CString& GetHead( ) const; CString& GetHead( );

Örnek

Sınıfın CAge listesi için bkzCObList::CObList.

Aşağıdaki örnekte, atama deyiminin sol tarafında kullanımı GetHead gösterilmektedir.

const CObList* cplist;

CObList* plist = new CObList;
CAge* page1 = new CAge(21);
CAge* page2 = new CAge(30);
CAge* page3 = new CAge(40);
plist->AddHead(page1);
plist->AddHead(page2);  // List now contains (30, 21).
// The following statement REPLACES the head element.
plist->GetHead() = page3; // List now contains (40, 21).
ASSERT(*(CAge*)plist->GetHead() == CAge(40));
cplist = plist;  // cplist is a pointer to a const list.
// cplist->GetHead() = page3; // Error: can't assign a pointer to a const list
ASSERT(*(CAge*)plist->GetHead() == CAge(40)); // OK

delete page1;
delete page2;
delete page3;
delete plist; // Cleans up memory.      

CObList::GetHeadPosition

Bu listenin baş öğesinin konumunu alır.

POSITION GetHeadPosition() const;

Dönüş Değeri

POSITION Liste boşsa yineleme veya nesne işaretçisi alma NULL için kullanılabilecek bir değer.

Aşağıdaki tabloda, benzeri CObList::GetHeadPositiondiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CPtrList POSITION GetHeadPosition( ) const;
CStringList POSITION GetHeadPosition( ) const;

Örnek

Sınıfın CAge listesi için bkzCObList::CObList.

CObList list;
POSITION pos;

list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
if ((pos = list.GetHeadPosition()) != NULL)
{
   ASSERT(*(CAge*)list.GetAt(pos) == CAge(40));
}

CObList::GetNext

tarafından rPositiontanımlanan list öğesini alır, ardından listedeki bir sonraki girdinin değerine ayarlar rPosition POSITION .

CObject*& GetNext(POSITION& rPosition);
const CObject* GetNext(POSITION& rPosition) const;

Parametreler

rPosition
Önceki GetNextbir , GetHeadPositionveya başka bir POSITION üye işlev çağrısı tarafından döndürülen bir değere başvuru.

Dönüş Değeri

için dönüş değeri açıklamasına GetHeadbakın.

Açıklamalar

veya Findçağrısıyla GetHeadPosition ilk konumu belirlerseniz, bir iletme yineleme döngüsünde kullanabilirsinizGetNext.

Değerinizin POSITION listede geçerli bir konumu temsildiğinden emin olmanız gerekir. Geçersizse, Microsoft Foundation Sınıf Kitaplığı'nın Hata Ayıklama sürümü onaylar.

Alınan öğe listenin son öğesiyse, öğesinin yeni değeri rPosition olarak NULLayarlanır.

Yineleme sırasında bir öğeyi kaldırmak mümkündür. örneğine RemoveAtbakın.

Not

MFC 8.0 sürümünden itibaren bu yöntemin const sürümü yerine const CObject*&döndürülecek const CObject* şekilde değiştirilmiştir. Bu değişiklik derleyiciyi C++ standardına uygun hale getirmek için yapılmıştır.

Aşağıdaki tabloda, benzeri CObList::GetNextdiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CPtrList void*& GetNext( POSITION& rPosition );

const void* GetNext( POSITION& rPosition ) const;
CStringList CString& GetNext( POSITION& rPosition );

const CString& GetNext( POSITION& rPosition ) const;

Örnek

Sınıfın CAge listesi için bkzCObList::CObList.

CObList list;
POSITION pos;
list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
// Iterate through the list in head-to-tail order.
#ifdef _DEBUG
for (pos = list.GetHeadPosition(); pos != NULL;)
{
   afxDump << list.GetNext(pos) << _T("\n");
}
#endif      

Bu programın sonuçları aşağıdaki gibidir:

a CAge at $479C 40
a CAge at $46C0 21

CObList::GetPrev

tarafından rPositiontanımlanan list öğesini alır ve ardından listedeki önceki girdinin değerine ayarlar rPosition POSITION .

CObject*& GetPrev(POSITION& rPosition);
const CObject* GetPrev(POSITION& rPosition) const;

Parametreler

rPosition
Önceki GetPrev veya başka bir POSITION üye işlev çağrısı tarafından döndürülen bir değere başvuru.

Dönüş Değeri

için dönüş değeri açıklamasına GetHeadbakın.

Açıklamalar

veya Findçağrısıyla GetTailPosition ilk konumu belirlerseniz ters yineleme döngüsünde kullanabilirsinizGetPrev.

Değerinizin POSITION listede geçerli bir konumu temsildiğinden emin olmanız gerekir. Geçersizse, Microsoft Foundation Sınıf Kitaplığı'nın Hata Ayıklama sürümü onaylar.

Alınan öğe listedeki ilk öğeyse, yeni değeri rPosition olarak NULLayarlanır.

Not

MFC 8.0 sürümünden itibaren bu yöntemin const sürümü yerine const CObject*&döndürülecek const CObject* şekilde değiştirilmiştir. Bu değişiklik derleyiciyi C++ standardına uygun hale getirmek için yapılmıştır.

Aşağıdaki tabloda, benzeri CObList::GetPrevdiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CPtrList void*& GetPrev( POSITION& rPosition );

const void* GetPrev( POSITION& rPosition ) const;
CStringList CString& GetPrev( POSITION& rPosition );

const CString& GetPrev( POSITION& rPosition ) const;

Örnek

Sınıfın CAge listesi için bkzCObList::CObList.

CObList list;
POSITION pos;

list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
// Iterate through the list in tail-to-head order.
for (pos = list.GetTailPosition(); pos != NULL;)
{
#ifdef _DEBUG
   afxDump << list.GetPrev(pos) << _T("\n");
#endif
}

Bu programın sonuçları aşağıdaki gibidir:

a CAge at $421C 21
a CAge at $421C 40

CObList::GetSize

Liste öğelerinin sayısını döndürür.

INT_PTR GetSize() const;

Dönüş Değeri

Listedeki öğelerin sayısı.

Açıklamalar

Listedeki öğe sayısını almak için bu yöntemi çağırın.

Aşağıdaki tabloda, benzeri CObList::GetSizediğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CPtrList INT_PTR GetSize( ) const;
CStringList INT_PTR GetSize( ) const;

Örnek

Sınıfın CAge listesi için bkzCObList::CObList.

CObList list;

list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
ASSERT(list.GetSize() == 2);

CObList::GetTail

Bu listenin CObject kuyruk öğesini temsil eden işaretçiyi alır.

CObject*& GetTail();
const CObject*& GetTail() const;

Dönüş Değeri

için dönüş değeri açıklamasına GetHeadbakın.

Açıklamalar

çağrısından GetTailönce listenin boş olmadığından emin olmanız gerekir. Liste boşsa, Microsoft Foundation Sınıf Kitaplığı'nın Hata Ayıklama sürümü onaylar. Listenin öğeler içerdiğini doğrulamak için kullanın IsEmpty .

Aşağıdaki tabloda, benzeri CObList::GetTaildiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CPtrList const void*& GetTail( ) const; void*& GetTail( );
CStringList const CString& GetTail( ) const; CString& GetTail( );

Örnek

Sınıfın CAge listesi için bkzCObList::CObList.

CObList list;

list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
ASSERT(*(CAge*)list.GetTail() == CAge(21));

CObList::GetTailPosition

Bu listenin kuyruk öğesinin konumunu alır; NULL liste boşsa.

POSITION GetTailPosition() const;

Dönüş Değeri

POSITION Liste boşsa yineleme veya nesne işaretçisi alma NULL için kullanılabilecek bir değer.

Aşağıdaki tabloda, benzeri CObList::GetTailPositiondiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CPtrList POSITION GetTailPosition( ) const;
CStringList POSITION GetTailPosition( ) const;

Örnek

Sınıfın CAge listesi için bkzCObList::CObList.

CObList list;
POSITION pos;

list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
if ((pos = list.GetTailPosition()) != NULL)
{
    ASSERT(*(CAge*) list.GetAt(pos) == CAge(21));
}     

CObList::InsertAfter

Belirtilen konumda öğesinden sonra bu listeye bir öğe ekler.

POSITION InsertAfter(
    POSITION position,
    CObject* newElement);

Parametreler

position
POSITION Önceki GetNextbir , GetPrevveya Find üye işlev çağrısı tarafından döndürülen değer.

newElement
Bu listeye eklenecek nesne işaretçisi.

Aşağıdaki tabloda, benzeri CObList::InsertAfterdiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CPtrList POSITION InsertAfter( POSITION position , void * newElement );
CStringList POSITION InsertAfter( POSITION position , const CString& newElement );

POSITION InsertAfter( POSITION position , LPCTSTR newElement );

Dönüş Değeri

POSITION parametresiyle aynı position değer.

Örnek

Sınıfın CAge listesi için bkzCObList::CObList.

CObList list;
POSITION pos1, pos2;
list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
if ((pos1 = list.GetHeadPosition()) != NULL)
{
    pos2 = list.InsertAfter(pos1, new CAge(65));
}
#ifdef _DEBUG
   afxDump.SetDepth(1);
   afxDump << _T("InsertAfter example: ") << &list << _T("\n");
#endif

Bu programın sonuçları aşağıdaki gibidir:

InsertAfter example: A CObList with 3 elements
a CAge at $4A44 40
a CAge at $4A64 65
a CAge at $4968 21

CObList::InsertBefore

Belirtilen konumdaki öğesinden önce bu listeye bir öğe ekler.

POSITION InsertBefore(
    POSITION position,
    CObject* newElement);

Parametreler

position
POSITION Önceki GetNextbir , GetPrevveya Find üye işlev çağrısı tarafından döndürülen değer.

newElement
Bu listeye eklenecek nesne işaretçisi.

Dönüş Değeri

POSITION Liste boşsa yineleme veya nesne işaretçisi alma NULL için kullanılabilecek bir değer.

Aşağıdaki tabloda, benzeri CObList::InsertBeforediğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CPtrList POSITION InsertBefore( POSITION position , void * newElement );
CStringList POSITION InsertBefore( POSITION position , const CString& newElement );

POSITION InsertBefore( POSITION position , LPCTSTR newElement );

Örnek

Sınıfın CAge listesi için bkzCObList::CObList.

CObList list;
POSITION pos1, pos2;
list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
if ((pos1 = list.GetTailPosition()) != NULL)
{
    pos2 = list.InsertBefore(pos1, new CAge(65));
}
#ifdef _DEBUG
   afxDump.SetDepth(1);
   afxDump << _T("InsertBefore example: ") << &list << _T("\n");
#endif      

Bu programın sonuçları aşağıdaki gibidir:

InsertBefore example: A CObList with 3 elements
a CAge at $4AE2 40
a CAge at $4B02 65
a CAge at $49E6 21

CObList::IsEmpty

Bu listede öğe bulunup bulunmadığını gösterir.

BOOL IsEmpty() const;

Dönüş Değeri

Bu liste boşsa sıfır olmayan; aksi takdirde 0.

Aşağıdaki tabloda, benzeri CObList::IsEmptydiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CPtrList BOOL IsEmpty( ) const;
CStringList BOOL IsEmpty( ) const;

Örnek

örneğine RemoveAllbakın.

CObList::RemoveAll

Bu listeden tüm öğeleri kaldırır ve ilişkili CObList belleği serbest bırakır.

void RemoveAll();

Açıklamalar

Liste zaten boşsa hata oluşturulmaz.

öğesinden CObListöğe kaldırdığınızda, nesne işaretçilerini listeden kaldırırsınız. Nesneleri silmek sizin sorumluluğunuzdadır.

Aşağıdaki tabloda, benzeri CObList::RemoveAlldiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CPtrList void RemoveAll( );
CStringList void RemoveAll( );

Örnek

Sınıfın CAge listesi için bkzCObList::CObList.

CObList list;
CAge* pa1;
CAge* pa2;
ASSERT(list.IsEmpty()); // Yes it is.
list.AddHead(pa1 = new CAge(21));
list.AddHead(pa2 = new CAge(40)); // List now contains (40, 21).
ASSERT(!list.IsEmpty()); // No it isn't.
list.RemoveAll(); // CAges aren't destroyed.
ASSERT(list.IsEmpty()); // Yes it is.
delete pa1;     // Now delete the CAge objects.
delete pa2;

CObList::RemoveAt

Belirtilen öğeyi bu listeden kaldırır.

void RemoveAt(POSITION position);

Parametreler

position
Listeden kaldırılacak öğenin konumu.

Açıklamalar

öğesinden CObListbir öğeyi kaldırdığınızda, nesne işaretçisini listeden kaldırırsınız. Nesneleri silmek sizin sorumluluğunuzdadır.

Değerinizin POSITION listede geçerli bir konumu temsildiğinden emin olmanız gerekir. Geçersizse, Microsoft Foundation Sınıf Kitaplığı'nın Hata Ayıklama sürümü onaylar.

Aşağıdaki tabloda, benzeri CObList::RemoveAtdiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CPtrList void RemoveAt( POSITION position );
CStringList void RemoveAt( POSITION position );

Örnek

Liste yinelemesi sırasında bir öğeyi kaldırırken dikkatli olun. Aşağıdaki örnekte için GetNextgeçerli POSITION bir değer garanti eden bir kaldırma tekniği gösterilmektedir.

Sınıfın CAge listesi için bkzCObList::CObList.

CObList list;
POSITION pos1, pos2;
CObject* pa;

list.AddHead(new CAge(21));
list.AddHead(new CAge(40));
list.AddHead(new CAge(65)); // List now contains (65 40, 21).
for (pos1 = list.GetHeadPosition(); (pos2 = pos1) != NULL;)
{
   if (*(CAge*)list.GetNext(pos1) == CAge(40))
   {
      pa = list.GetAt(pos2); // Save the old pointer for
                             //deletion.
      list.RemoveAt(pos2);
      delete pa; // Deletion avoids memory leak.
   }
}
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("RemoveAt example: ") << &list << _T("\n");
#endif      

Bu programın sonuçları aşağıdaki gibidir:

RemoveAt example: A CObList with 2 elements

a CAge at $4C1E 65

a CAge at $4B22 21

CObList::RemoveHead

öğeyi listenin başından kaldırır ve buna bir işaretçi döndürür.

CObject* RemoveHead();

Dönüş Değeri

İşaretçi CObject daha önce listenin başındadır.

Açıklamalar

çağrısından RemoveHeadönce listenin boş olmadığından emin olmanız gerekir. Liste boşsa, Microsoft Foundation Sınıf Kitaplığı'nın Hata Ayıklama sürümü onaylar. Listenin öğeler içerdiğini doğrulamak için kullanın IsEmpty .

Aşağıdaki tabloda, benzeri CObList::RemoveHeaddiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CPtrList void* RemoveHead( );
CStringList CString RemoveHead( );

Örnek

Sınıfın CAge listesi için bkzCObList::CObList.

CObList list;
CAge* pa1;
CAge* pa2;

list.AddHead(pa1 = new CAge(21));
list.AddHead(pa2 = new CAge(40)); // List now contains (40, 21).
ASSERT(*(CAge*)list.RemoveHead() == CAge(40));  // Old head
ASSERT(*(CAge*)list.GetHead() == CAge(21));  // New head
delete pa1;
delete pa2;

CObList::RemoveTail

öğeyi listenin kuyruğundan kaldırır ve buna bir işaretçi döndürür.

CObject* RemoveTail();

Dönüş Değeri

Listenin sonundaki nesnenin işaretçisi.

Açıklamalar

çağrısından RemoveTailönce listenin boş olmadığından emin olmanız gerekir. Liste boşsa, Microsoft Foundation Sınıf Kitaplığı'nın Hata Ayıklama sürümü onaylar. Listenin öğeler içerdiğini doğrulamak için kullanın IsEmpty .

Aşağıdaki tabloda, benzeri CObList::RemoveTaildiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CPtrList void* RemoveTail( );
CStringList CString RemoveTail( );

Örnek

Sınıfın CAge listesi için bkzCObList::CObList.

CObList list;
CAge* pa1;
CAge* pa2;

list.AddHead(pa1 = new CAge(21));
list.AddHead(pa2 = new CAge(40)); // List now contains (40, 21).
ASSERT(*(CAge*)list.RemoveTail() == CAge(21));  // Old tail
ASSERT(*(CAge*)list.GetTail() == CAge(40));  // New tail
delete pa1;
delete pa2; // Clean up memory.      

CObList::SetAt

Öğesini belirli bir konumda ayarlar.

void SetAt(
    POSITION pos,
    CObject* newElement);

Parametreler

pos
POSITION Ayarlanacak öğenin öğesi.

newElement
CObject Listeye yazılacak işaretçi.

Açıklamalar

Türündeki POSITION bir değişken, listenin anahtarıdır. Dizinle aynı değildir ve bir değer üzerinde POSITION kendiniz çalışamazsınız. SetAt işaretçiyi CObject listede belirtilen konuma yazar.

Değerinizin POSITION listede geçerli bir konumu temsildiğinden emin olmanız gerekir. Geçersizse, Microsoft Foundation Sınıf Kitaplığı'nın Hata Ayıklama sürümü onaylar.

Aşağıdaki tabloda, benzeri CObList::SetAtdiğer üye işlevleri gösterilmektedir.

Sınıf Üye İşlevi
CPtrList void SetAt( POSITION pos , const CString& newElement );
CStringList void SetAt( POSITION pos , LPCTSTR newElement );

Örnek

Sınıfın CAge listesi için bkzCObList::CObList.

CObList list;
CObject* pa;
POSITION pos;

list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
if ((pos = list.GetTailPosition()) != NULL)
{
   pa = list.GetAt(pos); // Save the old pointer for 
                         //deletion.
   list.SetAt(pos, new CAge(65));  // Replace the tail 
                                     //element.
   delete pa;  // Deletion avoids memory leak.
}
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("SetAt example: ") << &list << _T("\n");
#endif      

Bu programın sonuçları aşağıdaki gibidir:

SetAt example: A CObList with 2 elements
a CAge at $4D98 40
a CAge at $4DB8 65

Ayrıca bkz.

CObject Sınıf
Hiyerarşi Grafiği
CStringList Sınıf
CPtrList Sınıf