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