Megosztás a következőn keresztül:


CObList osztály

Megjegyzés:

A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.

Támogatja a sorrendbe rendezett listákat, CObject amelyek egymás után vagy mutatóérték alapján érhetők el.

Szemantika

class CObList : public CObject

Tagok

Nyilvános konstruktorok

Név Description
CObList::CObList Üres listát hoz létre a mutatók számára CObject .

Nyilvános metódusok

Név Description
CObList::AddHead Hozzáad egy elemet (vagy egy másik lista összes elemét) a lista éléhez (új fejet hoz létre).
CObList::AddTail Hozzáad egy elemet (vagy egy másik lista összes elemét) a lista farkához (új farkát készít).
CObList::Find Lekéri a mutatóérték által megadott elem pozícióját.
CObList::FindIndex Lekéri egy nulla alapú index által megadott elem pozícióját.
CObList::GetAt Az elemet egy adott pozícióba helyezi.
CObList::GetCount A lista elemeinek számát adja vissza.
CObList::GetHead A lista fő elemét adja vissza (nem lehet üres).
CObList::GetHeadPosition A lista fő elemének pozícióját adja vissza.
CObList::GetNext Lekéri az iterálás következő elemét.
CObList::GetPrev Lekéri az előző elemet az iteráláshoz.
CObList::GetSize A lista elemeinek számát adja vissza.
CObList::GetTail A lista farokelemét adja vissza (nem lehet üres).
CObList::GetTailPosition A lista farokelemének pozícióját adja vissza.
CObList::InsertAfter Új elemet szúr be egy adott pozíció után.
CObList::InsertBefore Új elemet szúr be egy adott pozíció elé.
CObList::IsEmpty Az üres listafeltétel (elemek nélkül) tesztelése.
CObList::RemoveAll Eltávolítja a listából az összes elemet.
CObList::RemoveAt Eltávolít egy elemet a listából, amelyet a pozíció határoz meg.
CObList::RemoveHead Eltávolítja az elemet a lista éléről.
CObList::RemoveTail Eltávolítja az elemet a lista farkából.
CObList::SetAt Az elemet egy adott pozícióba állítja.

Megjegyzések

CObList a listák a duplázott listákhoz hasonlóan működnek.

A típusváltozó POSITION a lista kulcsa. A változók POSITION iterátorként is használhatók a listák egymás utáni, illetve könyvjelzőként történő bejárására egy hely tárolásához. A pozíció azonban nem ugyanaz, mint az index.

Az elem beszúrása nagyon gyors a listafejnél, a faroknál és egy ismertnél POSITION. Egy elem érték vagy index szerinti kereséséhez szekvenciális keresésre van szükség. Ez a keresés lassú lehet, ha a lista hosszú.

CObList a makrót beépíti az IMPLEMENT_SERIAL elemek szerializálásának és memóriaképének támogatására. Ha a mutatók listája CObject egy archívumban van tárolva, akár túlterhelt beszúrási operátorral, akár a Serialize tagfüggvénnyel, az egyes CObject elemek egymás után szerializálva lesznek.

Ha a lista egyes CObject elemeiből álló memóriaképre van szüksége, a memóriakép-környezet mélységét 1 vagy nagyobbra kell állítania.

CObList Egy objektum törlésekor vagy elemeinek eltávolításakor a rendszer csak a CObject mutatókat távolítja el, a hivatkozott objektumokat nem.

Saját osztályokat is létrehozhat.CObList Az új listaosztály, amely úgy lett kialakítva, hogy a származtatott objektumokra mutató mutatókat tartson, új adattagokat és új tagfüggvényeket ad CObjecthozzá. Vegye figyelembe, hogy az eredményül kapott lista nem szigorúan biztonságos, mert lehetővé teszi a CObject mutató beszúrását.

Megjegyzés:

Ha szerializálni szeretné a listát, a IMPLEMENT_SERIAL makrót a származtatott osztály implementációjában kell használnia.

A használatról CObListtovábbi információt a Gyűjtemények című cikkben talál.

Öröklési hierarchia

CObject

CObList

Requirements

Fejléc:afxcoll.h

CObList::AddHead

Új elemet vagy elemlistát ad hozzá a lista éléhez.

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

Paraméterek

newElement
A CObject listához hozzáadni kívánt mutató.

pNewList
Egy másik CObList listára mutató mutató. A program hozzáadja a benne lévő pNewList elemeket ehhez a listához.

Visszaadott érték

Az első verzió az POSITION újonnan beszúrt elem értékét adja vissza.

Az alábbi táblázat a többi tagfüggvényt mutatja be, amelyek hasonlóak a következőhöz CObList::AddHead:

Class Tagfüggvény
CPtrList POSITION AddHead( void * newElement );

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

POSITION AddHead(LPCTSTR newElement );

void AddHead(CStringList * pNewList );

Megjegyzések

A lista a művelet előtt üres lehet.

Example

Tekintse meg CObList::CObList az CAge osztály listáját.

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      

A program eredményei a következők:

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

CObList::AddTail

Új elemet vagy elemlistát ad hozzá a lista széléhez.

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

Paraméterek

newElement
A CObject listához hozzáadni kívánt mutató.

pNewList
Egy másik CObList listára mutató mutató. A program hozzáadja a benne lévő pNewList elemeket ehhez a listához.

Visszaadott érték

Az első verzió az POSITION újonnan beszúrt elem értékét adja vissza.

Megjegyzések

A lista a művelet előtt üres lehet.

Az alábbi táblázat a többi tagfüggvényt mutatja be, amelyek hasonlóak a következőhöz CObList::AddTail:

Class Tagfüggvény
CPtrList POSITION AddTail( void * newElement );

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

POSITION AddTail( LPCTSTR newElement );

void AddTail( CStringList * pNewList );

Example

Tekintse meg CObList::CObList az CAge osztály listáját.

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      

A program eredményei a következők:

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

CObList::CObList

Üres CObject mutatólistát hoz létre.

CObList(INT_PTR nBlockSize = 10);

Paraméterek

nBlockSize
A lista kiterjesztésének memóriafoglalási részletessége.

Megjegyzések

A lista növekedésével a rendszer a memóriát bejegyzésegységekben nBlockSize foglalja le. Ha a memóriafoglalás sikertelen, CMemoryException a művelet a hibát jelzi.

Az alábbi táblázat a többi tagfüggvényt mutatja be, amelyek hasonlóak a következőhöz CObList::CObList:

Class Tagfüggvény
CPtrList CPtrList( INT_PTR nBlockSize = 10 );
CStringList CStringList( INT_PTR nBlockSize = 10 );

Example

Az alábbiakban felsoroljuk az CObjectösszes gyűjteményi példában használt -származtatott osztályt CAge :

// 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
};

Az alábbiakban egy példa a CObList konstruktor használatára:

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

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

CObList::Find

A lista egymást követő keresésével megkeresi a megadott CObject mutatónak megfelelő első CObject mutatót.

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

Paraméterek

searchValue
A listában található objektummutató.

startAfter
A keresés kezdőpozíciója.

Visszaadott érték

Iterációhoz POSITION vagy objektummutató lekéréséhez használható érték, NULL ha az objektum nem található.

Megjegyzések

Vegye figyelembe, hogy a mutató értékeit a rendszer összehasonlítja, nem az objektumok tartalmát.

Az alábbi táblázat a többi tagfüggvényt mutatja be, amelyek hasonlóak a következőhöz CObList::Find:

Class Tagfüggvény
CPtrList POSITION Find( void *searchValue , POSITION startAfter = NULL ) const;
CStringList POSITION Find( LPCTSTR searchValue , POSITION startAfter = NULL ) const;

Example

Tekintse meg CObList::CObList az CAge osztály listáját.

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

A lista indexeként használja az értéket nIndex .

POSITION FindIndex(INT_PTR nIndex) const;

Paraméterek

nIndex
A keresendő listaelem nulla alapú indexe.

Visszaadott érték

Iterációhoz POSITION vagy objektummutató lekéréséhez használható érték, NULL ha nIndex túl nagy. (A keretrendszer negatív állítást nIndex hoz létre.)

Megjegyzések

Elindít egy szekvenciális vizsgálatot a lista éléről, és megáll az nth elemen.

Az alábbi táblázat a többi tagfüggvényt mutatja be, amelyek hasonlóak a következőhöz CObList::FindIndex:

Class Tagfüggvény
CPtrList POSITION FindIndex( INT_PTR nIndex ) const;
CStringList POSITION FindIndex( INT_PTR nIndex ) const;

Example

Tekintse meg CObList::CObList az CAge osztály listáját.

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

A típusváltozó POSITION a lista kulcsa.

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

Paraméterek

position
Egy POSITION korábbi GetHeadPosition vagy Find tagfüggvény-hívás által visszaadott érték.

Visszaadott érték

Lásd a visszatérési érték leírását GetHead.

Megjegyzések

Ez nem ugyanaz, mint egy index, és nem lehet saját maga működtetni egy POSITION értéket. GetAt lekéri az CObject adott pozícióhoz társított mutatót.

Győződjön meg arról, hogy az POSITION érték érvényes pozíciót jelöl a listában. Ha érvénytelen, akkor a Microsoft Foundation osztálytár hibakeresési verziója érvényes.

Az alábbi táblázat a többi tagfüggvényt mutatja be, amelyek hasonlóak a következőhöz CObList::GetAt:

Class Tagfüggvény
CPtrList const void*& GetAt( POSITION position ) const;

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

CString& GetAt( POSITION position );

Example

Lásd a példát a FindIndex.

CObList::GetCount

Lekéri a lista elemeinek számát.

INT_PTR GetCount() const;

Visszaadott érték

Az elemszámot tartalmazó egész szám.

Az alábbi táblázat a többi tagfüggvényt mutatja be, amelyek hasonlóak a következőhöz CObList::GetCount:

Class Tagfüggvény
CPtrList INT_PTR GetCount( ) const;
CStringList INT_PTR GetCount( ) const;

Example

Tekintse meg CObList::CObList az CAge osztály listáját.

CObList list;

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

CObList::GetHead

Lekéri a CObject lista fejelemét ábrázoló mutatót.

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

Visszaadott érték

Ha a lista egy adott mutatón const CObListkeresztül érhető el, akkor GetHead egy mutatót CObject ad vissza. Így a függvény csak a hozzárendelési utasítás jobb oldalán használható, így védi a listát a módosítástól.

Ha a lista közvetlenül vagy mutatón keresztül CObListérhető el, akkor GetHead egy mutatóra CObject mutató hivatkozást ad vissza. Ez lehetővé teszi a függvény használatát a hozzárendelési utasítás mindkét oldalán, így lehetővé teszi a listabejegyzések módosítását.

Megjegyzések

A hívás GetHeadelőtt győződjön meg arról, hogy a lista nem üres. Ha a lista üres, akkor a Microsoft Foundation osztálytár hibakeresési verziója érvényes. Annak ellenőrzésére használható IsEmpty , hogy a lista tartalmaz-e elemeket.

Az alábbi táblázat a többi tagfüggvényt mutatja be, amelyek hasonlóak a következőhöz CObList::GetHead:

Class Tagfüggvény
CPtrList const void*& GetHead( ) const; void*& GetHead( );
CStringList const CString& GetHead( ) const; CString& GetHead( );

Example

Tekintse meg CObList::CObList az CAge osztály listáját.

Az alábbi példa egy hozzárendelési GetHead utasítás bal oldalán történő használatát szemlélteti.

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

Lekéri a lista fő elemének pozícióját.

POSITION GetHeadPosition() const;

Visszaadott érték

Iterációhoz POSITION vagy objektummutató lekéréséhez használható érték, NULL ha a lista üres.

Az alábbi táblázat a többi tagfüggvényt mutatja be, amelyek hasonlóak a következőhöz CObList::GetHeadPosition:

Class Tagfüggvény
CPtrList POSITION GetHeadPosition( ) const;
CStringList POSITION GetHeadPosition( ) const;

Example

Tekintse meg CObList::CObList az CAge osztály listáját.

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

Lekéri az általa rPositionazonosított listaelemet, majd a POSITION lista következő bejegyzésének értékére állítja rPosition be.

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

Paraméterek

rPosition
Hivatkozás egy POSITION előző GetNext, GetHeadPositionvagy más tagfüggvény-hívás által visszaadott értékre.

Visszaadott érték

Lásd a visszatérési érték leírását GetHead.

Megjegyzések

A továbbítási iterációs ciklusban akkor használható GetNext , ha a kezdeti pozíciót egy vagy több hívással GetHeadPositionFindhozza létre.

Győződjön meg arról, hogy az POSITION érték érvényes pozíciót jelöl a listában. Ha érvénytelen, akkor a Microsoft Foundation osztálytár hibakeresési verziója érvényes.

Ha a lekért elem az utolsó a listában, akkor az új érték rPosition a következőre NULLvan állítva: .

Az iteráció során el lehet távolítani egy elemet. Lásd a példát a RemoveAt.

Megjegyzés:

Az MFC 8.0-s verziójától a metódus const verziója ahelyettconst CObject*&, hogy visszaváltconst CObject*. Ezt a módosítást úgy hajtották végre, hogy a fordító megfeleljen a C++ szabványnak.

Az alábbi táblázat a többi tagfüggvényt mutatja be, amelyek hasonlóak a következőhöz CObList::GetNext:

Class Tagfüggvény
CPtrList void*& GetNext( POSITION& rPosition );

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

const CString& GetNext( POSITION& rPosition ) const;

Example

Tekintse meg CObList::CObList az CAge osztály listáját.

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      

A program eredményei a következők:

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

CObList::GetPrev

Lekéri az általa rPositionazonosított listaelemet, majd a POSITION lista előző bejegyzésének értékére állítja rPosition be.

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

Paraméterek

rPosition
Hivatkozás egy POSITION korábbi GetPrev vagy más tagfüggvény-hívás által visszaadott értékre.

Visszaadott érték

Lásd a visszatérési érték leírását GetHead.

Megjegyzések

Fordított iterációs ciklusban akkor használható GetPrev , ha a kezdeti pozíciót egy vagy több hívással GetTailPositionFindhozza létre.

Győződjön meg arról, hogy az POSITION érték érvényes pozíciót jelöl a listában. Ha érvénytelen, akkor a Microsoft Foundation osztálytár hibakeresési verziója érvényes.

Ha a lekért elem az első a listában, akkor az új érték rPosition a következőre NULLvan állítva: .

Megjegyzés:

Az MFC 8.0-s verziójától a metódus const verziója ahelyettconst CObject*&, hogy visszaváltconst CObject*. Ezt a módosítást úgy hajtották végre, hogy a fordító megfeleljen a C++ szabványnak.

Az alábbi táblázat a többi tagfüggvényt mutatja be, amelyek hasonlóak a következőhöz CObList::GetPrev:

Class Tagfüggvény
CPtrList void*& GetPrev( POSITION& rPosition );

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

const CString& GetPrev( POSITION& rPosition ) const;

Example

Tekintse meg CObList::CObList az CAge osztály listáját.

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
}

A program eredményei a következők:

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

CObList::GetSize

A listaelemek számát adja vissza.

INT_PTR GetSize() const;

Visszaadott érték

A lista elemeinek száma.

Megjegyzések

Hívja meg ezt a metódust a lista elemeinek számának lekéréséhez.

Az alábbi táblázat a többi tagfüggvényt mutatja be, amelyek hasonlóak a következőhöz CObList::GetSize:

Class Tagfüggvény
CPtrList INT_PTR GetSize( ) const;
CStringList INT_PTR GetSize( ) const;

Example

Tekintse meg CObList::CObList az CAge osztály listáját.

CObList list;

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

CObList::GetTail

Lekéri a CObject lista farokelemét ábrázoló mutatót.

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

Visszaadott érték

Lásd a visszatérési érték leírását GetHead.

Megjegyzések

A hívás GetTailelőtt győződjön meg arról, hogy a lista nem üres. Ha a lista üres, akkor a Microsoft Foundation osztálytár hibakeresési verziója érvényes. Annak ellenőrzésére használható IsEmpty , hogy a lista tartalmaz-e elemeket.

Az alábbi táblázat a többi tagfüggvényt mutatja be, amelyek hasonlóak a következőhöz CObList::GetTail:

Class Tagfüggvény
CPtrList const void*& GetTail( ) const; void*& GetTail( );
CStringList const CString& GetTail( ) const; CString& GetTail( );

Example

Tekintse meg CObList::CObList az CAge osztály listáját.

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

Lekéri a lista farokelemének pozícióját; NULL ha a lista üres.

POSITION GetTailPosition() const;

Visszaadott érték

Iterációhoz POSITION vagy objektummutató lekéréséhez használható érték, NULL ha a lista üres.

Az alábbi táblázat a többi tagfüggvényt mutatja be, amelyek hasonlóak a következőhöz CObList::GetTailPosition:

Class Tagfüggvény
CPtrList POSITION GetTailPosition( ) const;
CStringList POSITION GetTailPosition( ) const;

Example

Tekintse meg CObList::CObList az CAge osztály listáját.

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

Hozzáad egy elemet a listához a megadott pozícióban lévő elem után.

POSITION InsertAfter(
    POSITION position,
    CObject* newElement);

Paraméterek

position
Egy POSITION korábbi GetNext, GetPrevvagy Find tagfüggvény-hívás által visszaadott érték.

newElement
A listához hozzáadni kívánt objektummutató.

Az alábbi táblázat a többi tagfüggvényt mutatja be, amelyek hasonlóak a következőhöz CObList::InsertAfter:

Class Tagfüggvény
CPtrList POSITION InsertAfter( POSITION position , void * newElement );
CStringList POSITION InsertAfter( POSITION position , const CString& newElement );

POSITION InsertAfter( POSITION position , LPCTSTR newElement );

Visszaadott érték

A POSITION paraméterrel position megegyező érték.

Example

Tekintse meg CObList::CObList az CAge osztály listáját.

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

A program eredményei a következők:

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

CObList::InsertBefore

Hozzáad egy elemet a listához a megadott pozícióban lévő elem előtt.

POSITION InsertBefore(
    POSITION position,
    CObject* newElement);

Paraméterek

position
Egy POSITION korábbi GetNext, GetPrevvagy Find tagfüggvény-hívás által visszaadott érték.

newElement
A listához hozzáadni kívánt objektummutató.

Visszaadott érték

Iterációhoz POSITION vagy objektummutató lekéréséhez használható érték, NULL ha a lista üres.

Az alábbi táblázat a többi tagfüggvényt mutatja be, amelyek hasonlóak a következőhöz CObList::InsertBefore:

Class Tagfüggvény
CPtrList POSITION InsertBefore( POSITION position , void * newElement );
CStringList POSITION InsertBefore( POSITION position , const CString& newElement );

POSITION InsertBefore( POSITION position , LPCTSTR newElement );

Example

Tekintse meg CObList::CObList az CAge osztály listáját.

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      

A program eredményei a következők:

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

CObList::IsEmpty

Azt jelzi, hogy a lista nem tartalmaz-e elemeket.

BOOL IsEmpty() const;

Visszaadott érték

Nonzero, ha ez a lista üres; egyéb esetben 0.

Az alábbi táblázat a többi tagfüggvényt mutatja be, amelyek hasonlóak a következőhöz CObList::IsEmpty:

Class Tagfüggvény
CPtrList BOOL IsEmpty( ) const;
CStringList BOOL IsEmpty( ) const;

Example

Lásd a példát a RemoveAll.

CObList::RemoveAll

Eltávolítja a listából az összes elemet, és felszabadítja a társított CObList memóriát.

void RemoveAll();

Megjegyzések

Nem jön létre hiba, ha a lista már üres.

Elemek eltávolításakor CObListeltávolítja az objektummutatókat a listából. Az Ön felelőssége, hogy maguk töröljék az objektumokat.

Az alábbi táblázat a többi tagfüggvényt mutatja be, amelyek hasonlóak a következőhöz CObList::RemoveAll:

Class Tagfüggvény
CPtrList void RemoveAll( );
CStringList void RemoveAll( );

Example

Tekintse meg CObList::CObList az CAge osztály listáját.

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

Eltávolítja a megadott elemet a listából.

void RemoveAt(POSITION position);

Paraméterek

position
A listából eltávolítandó elem helye.

Megjegyzések

Amikor eltávolít egy elemet egy CObListelemből, eltávolítja az objektummutatót a listából. Az Ön felelőssége, hogy maguk töröljék az objektumokat.

Győződjön meg arról, hogy az POSITION érték érvényes pozíciót jelöl a listában. Ha érvénytelen, akkor a Microsoft Foundation osztálytár hibakeresési verziója érvényes.

Az alábbi táblázat a többi tagfüggvényt mutatja be, amelyek hasonlóak a következőhöz CObList::RemoveAt:

Class Tagfüggvény
CPtrList void RemoveAt( POSITION position );
CStringList void RemoveAt( POSITION position );

Example

Legyen óvatos, amikor eltávolít egy elemet egy lista iterációja során. Az alábbi példa egy olyan eltávolítási POSITION technikát mutat be, amely érvényes értéket garantál a következőhöz GetNext: .

Tekintse meg CObList::CObList az CAge osztály listáját.

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      

A program eredményei a következők:

RemoveAt example: A CObList with 2 elements

a CAge at $4C1E 65

a CAge at $4B22 21

CObList::RemoveHead

Eltávolítja az elemet a lista éléről, és egy mutatót ad vissza.

CObject* RemoveHead();

Visszaadott érték

Az CObject egérmutató korábban a lista élén.

Megjegyzések

A hívás RemoveHeadelőtt győződjön meg arról, hogy a lista nem üres. Ha a lista üres, akkor a Microsoft Foundation osztálytár hibakeresési verziója érvényes. Annak ellenőrzésére használható IsEmpty , hogy a lista tartalmaz-e elemeket.

Az alábbi táblázat a többi tagfüggvényt mutatja be, amelyek hasonlóak a következőhöz CObList::RemoveHead:

Class Tagfüggvény
CPtrList void* RemoveHead( );
CStringList CString RemoveHead( );

Example

Tekintse meg CObList::CObList az CAge osztály listáját.

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

Eltávolítja az elemet a lista farkából, és egy mutatót ad vissza.

CObject* RemoveTail();

Visszaadott érték

A lista végén lévő objektumra mutató mutató.

Megjegyzések

A hívás RemoveTailelőtt győződjön meg arról, hogy a lista nem üres. Ha a lista üres, akkor a Microsoft Foundation osztálytár hibakeresési verziója érvényes. Annak ellenőrzésére használható IsEmpty , hogy a lista tartalmaz-e elemeket.

Az alábbi táblázat a többi tagfüggvényt mutatja be, amelyek hasonlóak a következőhöz CObList::RemoveTail:

Class Tagfüggvény
CPtrList void* RemoveTail( );
CStringList CString RemoveTail( );

Example

Tekintse meg CObList::CObList az CAge osztály listáját.

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

Az elemet egy adott pozícióba állítja.

void SetAt(
    POSITION pos,
    CObject* newElement);

Paraméterek

pos
A POSITION beállítani kívánt elem.

newElement
A CObject listára írandó mutató.

Megjegyzések

A típusváltozó POSITION a lista kulcsa. Ez nem ugyanaz, mint egy index, és nem lehet saját maga működtetni egy POSITION értéket. SetAt A mutatót a CObject listában megadott helyre írja.

Győződjön meg arról, hogy az POSITION érték érvényes pozíciót jelöl a listában. Ha érvénytelen, akkor a Microsoft Foundation osztálytár hibakeresési verziója érvényes.

Az alábbi táblázat a többi tagfüggvényt mutatja be, amelyek hasonlóak a következőhöz CObList::SetAt:

Class Tagfüggvény
CPtrList void SetAt( POSITION pos , const CString& newElement );
CStringList void SetAt( POSITION pos , LPCTSTR newElement );

Example

Tekintse meg CObList::CObList az CAge osztály listáját.

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      

A program eredményei a következők:

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

Lásd még

CObject osztály
hierarchiadiagram
CStringList osztály
CPtrList osztály