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 POSITION
bir öğ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 CObList
türetebilirsiniz. öğesinden türetilen nesnelere işaretçileri tutmak için tasarlanan CObject
yeni 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 CObList
hakkı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::AddHead
diğ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::AddTail
diğ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::CObList
diğ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 CObject
verilmiş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::Find
diğ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::FindIndex
diğ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 GetHead
bakı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::GetAt
diğ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 FindIndex
bakı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::GetCount
diğ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 CObList
aracı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 CObList
aracı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::GetHead
diğ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::GetHeadPosition
diğ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 rPosition
tanı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 GetNext
bir , GetHeadPosition
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 GetHead
bakı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 NULL
ayarlanır.
Yineleme sırasında bir öğeyi kaldırmak mümkündür. örneğine RemoveAt
bakı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::GetNext
diğ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 rPosition
tanı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 GetHead
bakı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 NULL
ayarlanı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::GetPrev
diğ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::GetSize
diğ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 GetHead
bakı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::GetTail
diğ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::GetTailPosition
diğ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 GetNext
bir , GetPrev
veya 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::InsertAfter
diğ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 GetNext
bir , GetPrev
veya 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::InsertBefore
diğ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::IsEmpty
diğer üye işlevleri gösterilmektedir.
Sınıf | Üye İşlevi |
---|---|
CPtrList |
BOOL IsEmpty( ) const; |
CStringList |
BOOL IsEmpty( ) const; |
Örnek
örneğine RemoveAll
bakı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::RemoveAll
diğ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 CObList
bir öğ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::RemoveAt
diğ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 GetNext
geç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::RemoveHead
diğ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::RemoveTail
diğ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::SetAt
diğ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