CList
Třída
Podporuje uspořádané seznamy neunique objektů, které jsou přístupné postupně nebo podle hodnoty.
Syntaxe
template<class TYPE, class ARG_TYPE = const TYPE&>
class CList : public CObject
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CList::CList |
Vytvoří prázdný seřazený seznam. |
Veřejné metody
Název | Popis |
---|---|
CList::AddHead |
Přidá prvek (nebo všechny prvky v jiném seznamu) do hlavy seznamu (vytvoří novou hlavu). |
CList::AddTail |
Přidá prvek (nebo všechny prvky v jiném seznamu) na konec seznamu (vytvoří nový ocas). |
CList::Find |
Získá pozici prvku určeného hodnotou ukazatele. |
CList::FindIndex |
Získá pozici prvku určeného indexem založeným na nule. |
CList::GetAt |
Získá prvek na dané pozici. |
CList::GetCount |
Vrátí počet prvků v tomto seznamu. |
CList::GetHead |
Vrátí hlavní prvek seznamu (nesmí být prázdný). |
CList::GetHeadPosition |
Vrátí pozici hlavního prvku seznamu. |
CList::GetNext |
Získá další prvek pro iterování. |
CList::GetPrev |
Získá předchozí prvek pro iterování. |
CList::GetSize |
Vrátí počet prvků v tomto seznamu. |
CList::GetTail |
Vrátí zadní prvek seznamu (nesmí být prázdný). |
CList::GetTailPosition |
Vrátí pozici koncového prvku seznamu. |
CList::InsertAfter |
Vloží nový prvek za danou pozici. |
CList::InsertBefore |
Vloží nový prvek před danou pozici. |
CList::IsEmpty |
Testuje prázdnou podmínku seznamu (žádné prvky). |
CList::RemoveAll |
Odebere všechny prvky z tohoto seznamu. |
CList::RemoveAt |
Odebere prvek z tohoto seznamu určený pozicí. |
CList::RemoveHead |
Odebere prvek z hlavy seznamu. |
CList::RemoveTail |
Odebere prvek z konce seznamu. |
CList::SetAt |
Nastaví prvek na dané pozici. |
Parametry
TYPE
Typ objektu uloženého v seznamu
ARG_TYPE
Typ použitý k odkaz na objekty uložené v seznamu. Může to být odkaz.
Poznámky
CList
seznamy se chovají jako seznamy propojené doubly.
Proměnná typu POSITION
je klíčem pro seznam. Proměnnou POSITION
můžete použít jako iterátor k postupnému procházení seznamu a záložky pro uložení místa. Pozice ale není stejná jako index.
Vložení prvku je velmi rychlé v hlavě seznamu, na chvostu a ve známém POSITION
. Sekvenční vyhledávání je nezbytné k vyhledání prvku podle hodnoty nebo indexu. Toto hledání může být pomalé, pokud je seznam dlouhý.
Pokud potřebujete výpis jednotlivých prvků v seznamu, musíte nastavit hloubku kontextu výpisu na hodnotu 1 nebo vyšší.
Některé členské funkce této třídy volají globální pomocné funkce, které musí být přizpůsobeny pro většinu použití CList
třídy. Viz Pomocné rutiny tříd kolekcí v části Makra a globální hodnoty.
Další informace o použití CList
naleznete v článku Kolekce.
Příklad
// CList is a template class that takes two template arguments.
// The first argument is type stored internally by the list, the
// second argument is the type used in the arguments for the
// CList methods.
// This code defines a list of ints.
CList<int, int> myIntList;
// This code defines a list of CStrings
CList<CString, CString &> myStringList;
// This code defines a list of MYTYPEs,
// NOTE: MYTYPE could be any struct, class or type definition
CList<MYTYPE, MYTYPE &> myTypeList;
Hierarchie dědičnosti
CList
Požadavky
Záhlaví: afxtempl.h
CList::AddHead
Přidá nový prvek nebo seznam prvků do hlavy tohoto seznamu.
POSITION AddHead(ARG_TYPE newElement);
void AddHead(CList* pNewList);
Parametry
ARG_TYPE
Parametr šablony určující typ prvku seznamu (může být odkaz).
newElement
Nový prvek.
pNewList
Ukazatel na jiný CList
seznam. Prvky v pNewList
tomto seznamu budou přidány.
Návratová hodnota
První verze vrátí POSITION
hodnotu nově vloženého prvku.
Poznámky
Seznam může být před operací prázdný.
Příklad
// Declarations of the variables used in the example
CList<CString, CString &> myList;
CList<CString, CString &> myList2;
// There are two versions of CList::AddHead: one adds a single
// element to the front of the list, the second adds another list
// to the front.
// This adds the string "ABC" to the front of myList.
// myList is a list of CStrings (ie defined as CList<CString,CString&>).
myList.AddHead(CString(_T("ABC")));
// This adds the elements of myList2 to the front of myList.
myList.AddHead(&myList2);
CList::AddTail
Přidá nový prvek nebo seznam prvků na konec tohoto seznamu.
POSITION AddTail(ARG_TYPE newElement);
void AddTail(CList* pNewList);
Parametry
ARG_TYPE
Parametr šablony určující typ prvku seznamu (může být odkaz).
newElement
Prvek, který se má přidat do tohoto seznamu.
pNewList
Ukazatel na jiný CList
seznam. Prvky v pNewList
tomto seznamu budou přidány.
Návratová hodnota
První verze vrátí POSITION
hodnotu nově vloženého prvku.
Poznámky
Seznam může být před operací prázdný.
Příklad
// Define myList and myList2.
CList<CString, CString &> myList;
CList<CString, CString &> myList2;
// Add elements to the end of myList and myList2.
myList.AddTail(CString(_T("A")));
myList.AddTail(CString(_T("B")));
myList2.AddTail(CString(_T("C")));
myList2.AddTail(CString(_T("D")));
// There are two versions of CList::AddTail: one adds a single
// element to the end of the list, the second adds another list
// to the end.
// This adds the string "ABC" to the end of myList.
// myList is a list of CStrings (ie defined as CList<CString,CString&>).
myList.AddTail(CString(_T("ABC")));
ASSERT(CString(_T("ABC")) == myList.GetTail());
// This adds the elements of myList2 to the end of myList.
myList.AddTail(&myList2);
CList::CList
Vytvoří prázdný seřazený seznam.
CList(INT_PTR nBlockSize = 10);
Parametry
nBlockSize
Členitost přidělení paměti pro rozšíření seznamu.
Poznámky
S rostoucím seznamem se paměť přiděluje v jednotkách nBlockSize
položek.
Příklad
// This code defines myList as a list of strings
// such that memory gets allocated in chunks of
// 16 strings.
CList<CString, CString &> myList(16);
// This code defines myList2 as a list of ints
// such that memory gets allocated in chunks of
// 128 ints.
CList<int, int> myList2(128);
CList::Find
Vyhledá seznam postupně a vyhledá první prvek odpovídající zadanému searchValue
.
POSITION Find(
ARG_TYPE searchValue,
POSITION startAfter = NULL) const;
Parametry
ARG_TYPE
Parametr šablony určující typ prvku seznamu (může být odkaz).
searchValue
Hodnota, která se má najít v seznamu.
startAfter
Počáteční pozice hledání. Pokud není zadána žádná hodnota, hledání začíná hlavním prvkem.
Návratová hodnota
Hodnota POSITION
, kterou lze použít pro iteraci nebo načtení ukazatele objektu; NULL
pokud objekt nebyl nalezen.
Příklad
// Define myList.
CList<CString, CString &> myList;
// Add three elements to the list.
myList.AddHead(CString(_T("XYZ")));
myList.AddHead(CString(_T("ABC")));
myList.AddHead(CString(_T("123")));
// Find a specific element.
POSITION pos = myList.Find(CString(_T("XYZ")));
ASSERT(CString(_T("XYZ")) == myList.GetAt(pos));
CList::FindIndex
Použije hodnotu nIndex
jako index do seznamu.
POSITION FindIndex(INT_PTR nIndex) const;
Parametry
nIndex
Index prvku seznamu založený na nule, který se má najít.
Návratová hodnota
Hodnota POSITION
, kterou lze použít pro iteraci nebo načtení ukazatele objektu; NULL
pokud nIndex
je záporná nebo příliš velká.
Poznámky
Spustí sekvenční skenování z hlavy seznamu a zastaví se na n-thprvku.
Příklad
// Define myList.
CList<CString, CString &> myList;
// Add three elements to the list.
myList.AddTail(CString(_T("XYZ")));
myList.AddTail(CString(_T("ABC")));
myList.AddTail(CString(_T("123")));
// Verify the first element (index 0).
ASSERT(CString(_T("XYZ")) == myList.GetAt(myList.FindIndex(0)));
// Verify the third element (index 2).
ASSERT(CString(_T("123")) == myList.GetAt(myList.FindIndex(2)));
CList::GetAt
Získá prvek seznamu na dané pozici.
TYPE& GetAt(POSITION position);
const TYPE& GetAt(POSITION position) const;
Parametry
TYPE
Parametr šablony určující typ objektu v seznamu.
position
Pozice v seznamu elementu, který chcete získat.
Návratová hodnota
Podívejte se na popis návratové hodnoty pro GetHead
.
Poznámky
GetAt
vrátí prvek (nebo odkaz na prvek) přidružený k dané pozici. Není to stejné jako index a nemůžete pracovat s POSITION
hodnotou sami. Proměnná typu POSITION
je klíčem pro seznam.
Je nutné zajistit, aby hodnota POSITION
představovala platnou pozici v seznamu. Pokud je neplatná, pak ladicí verze knihovny tříd Microsoft Foundation asserts.
Příklad
Podívejte se na příklad pro CList::GetHeadPosition
.
CList::GetCount
Získá počet prvků v tomto seznamu.
INT_PTR GetCount() const;
Návratová hodnota
Celočíselná hodnota obsahující počet prvků.
Poznámky
Voláním této metody se vygeneruje stejný výsledek jako metoda CList::GetSize
.
Příklad
Podívejte se na příklad pro CList::RemoveHead
.
CList::GetHead
Získá hlavní prvek (nebo odkaz na hlavní prvek) tohoto seznamu.
const TYPE& GetHead() const;
TYPE& GetHead();
Parametry
TYPE
Parametr šablony určující typ objektu v seznamu.
Návratová hodnota
Pokud je const
seznam , GetHead
vrátí kopii prvku v záhlaví seznamu. To umožňuje, aby funkce byla použita pouze na pravé straně příkazu přiřazení a chrání seznam před úpravami.
Pokud seznam není const
, GetHead
vrátí odkaz na prvek v záhlaví seznamu. To umožňuje, aby se funkce používala na obou stranách příkazu přiřazení, a tím umožňuje úpravu položek seznamu.
Poznámky
Před voláním GetHead
je nutné zajistit, aby seznam nebyl prázdný . Pokud je seznam prázdný, pak ladicí verze knihovny tříd Microsoft Foundation se uplatní. Slouží IsEmpty
k ověření, zda seznam obsahuje prvky.
Příklad
// Define myList.
CList<CString, CString &> myList;
// Add an element to the front of the list.
myList.AddHead(CString(_T("ABC")));
// Verify the element was added to the front of the list.
ASSERT(CString(_T("ABC")) == myList.GetHead());
CList::GetHeadPosition
Získá pozici hlavního prvku tohoto seznamu.
POSITION GetHeadPosition() const;
Návratová hodnota
Hodnota POSITION
, kterou lze použít pro iteraci nebo načtení ukazatele objektu; NULL
pokud je seznam prázdný.
Příklad
// Define myList.
CList<CString, CString &> myList;
// Add an element to the front of the list.
myList.AddHead(CString(_T("ABC")));
// Verify the element at the head position
// is the one added.
POSITION pos = myList.GetHeadPosition();
ASSERT(CString(_T("ABC")) == myList.GetAt(pos));
CList::GetNext
Získá prvek seznamu identifikovaný rPosition
, pak nastaví rPosition
na POSITION
hodnotu další položky v seznamu.
TYPE& GetNext(POSITION& rPosition);
const TYPE& GetNext(POSITION& rPosition) const;
Parametry
TYPE
Parametr šablony určující typ prvků v seznamu
rPosition
Odkaz na POSITION
hodnotu vrácenou předchozím GetNext
voláním funkce , GetHeadPosition
nebo jiné členské funkce.
Návratová hodnota
Pokud je const
seznam , GetNext
vrátí kopii prvku seznamu. To umožňuje, aby funkce byla použita pouze na pravé straně příkazu přiřazení a chrání seznam před úpravami.
Pokud seznam není const
, GetNext
vrátí odkaz na prvek seznamu. To umožňuje, aby se funkce používala na obou stranách příkazu přiřazení, a tím umožňuje úpravu položek seznamu.
Poznámky
Můžete použít GetNext
ve smyčce přesměrování iterace, pokud vytvoříte počáteční pozici s voláním GetHeadPosition
nebo Find
.
Je nutné zajistit, aby hodnota POSITION
představovala platnou pozici v seznamu. Pokud je neplatná, pak ladicí verze knihovny tříd Microsoft Foundation asserts.
Pokud je načtený prvek poslední v seznamu, pak je nová hodnota rPosition
nastavena na HODNOTU NULL.
Příklad
// Define myList.
// Define myList.
CList<CString, CString &> myList;
// Add two elements to the list.
myList.AddHead(CString(_T("ABC")));
myList.AddHead(CString(_T("123")));
// Dump the list elements to the debug window.
POSITION pos = myList.GetHeadPosition();
for (int i = 0; i < myList.GetCount(); i++)
{
TRACE(_T("%s\r\n"), (LPCTSTR)myList.GetNext(pos));
}
CList::GetPrev
Získá prvek seznamu identifikovaný rPosition
, pak nastaví rPosition
na POSITION
hodnotu předchozí položky v seznamu.
TYPE& GetPrev(POSITION& rPosition);
const TYPE& GetPrev(POSITION& rPosition) const;
Parametry
TYPE
Parametr šablony určující typ prvků v seznamu
rPosition
Odkaz na POSITION
hodnotu vrácenou předchozím GetPrev
nebo jiným voláním členské funkce.
Návratová hodnota
Pokud je const
seznam , GetPrev
vrátí kopii prvku v záhlaví seznamu. To umožňuje, aby funkce byla použita pouze na pravé straně příkazu přiřazení a chrání seznam před úpravami.
Pokud seznam není const
, GetPrev
vrátí odkaz na prvek seznamu. To umožňuje, aby se funkce používala na obou stranách příkazu přiřazení, a tím umožňuje úpravu položek seznamu.
Poznámky
Můžete použít GetPrev
ve smyčce zpětné iterace, pokud vytvoříte počáteční pozici s voláním GetTailPosition
nebo Find
.
Je nutné zajistit, aby hodnota POSITION
představovala platnou pozici v seznamu. Pokud je neplatná, pak ladicí verze knihovny tříd Microsoft Foundation asserts.
Pokud je načtený prvek první v seznamu, pak je nová hodnota rPosition
nastavena na NULL
.
Příklad
// Define myList.
CList<CString,CString&> myList;
// Add two elements to the list.
myList.AddHead(CString(_T("ABC")));
myList.AddHead(CString(_T("123")));
// Dump the list elements to the debug window,
// in reverse order.
POSITION pos = myList.GetTailPosition();
for (int i = 0; i < myList.GetCount(); i++)
{
TRACE(_T("%s\r\n"), (LPCTSTR)myList.GetPrev(pos));
}
CList::GetSize
Vrátí počet prvků seznamu.
INT_PTR GetSize() const;
Návratová hodnota
Početpoložekch
Poznámky
Voláním této metody načtěte počet prvků v seznamu. Voláním této metody se vygeneruje stejný výsledek jako metoda CList::GetCount
.
Příklad
// Define myList.
CList<CString, CString &> myList;
// Add two elements to the list.
myList.AddHead(CString(_T("ABC")));
myList.AddHead(CString(_T("123")));
// Remove the head element and verify the list.
// NOTE: once the head is removed, the number of
// elements in the list will be one.
CString strHead = myList.RemoveHead();
ASSERT((CString(_T("123")) == strHead) && (myList.GetSize() == 1) &&
(CString(_T("ABC")) == myList.GetHead()));
CList::GetTail
CObject
Získá ukazatel, který představuje ocasní prvek tohoto seznamu.
TYPE& GetTail();
const TYPE& GetTail() const;
Parametry
TYPE
Parametr šablony určující typ prvků v seznamu
Návratová hodnota
Podívejte se na popis návratové hodnoty pro GetHead
.
Poznámky
Před voláním GetTail
je nutné zajistit, aby seznam nebyl prázdný . Pokud je seznam prázdný, pak ladicí verze knihovny tříd Microsoft Foundation se uplatní. Slouží IsEmpty
k ověření, zda seznam obsahuje prvky.
Příklad
// Define myList.
CList<CString, CString &> myList;
// Add an element to the end of the list.
myList.AddTail(CString(_T("ABC")));
// Verify the element was added to the end of the list.
ASSERT(CString(_T("ABC")) == myList.GetTail());
CList::GetTailPosition
Získá pozici koncového prvku tohoto seznamu; NULL
pokud je seznam prázdný.
POSITION GetTailPosition() const;
Návratová hodnota
Hodnota POSITION
, kterou lze použít pro iteraci nebo načtení ukazatele objektu; NULL
pokud je seznam prázdný.
Příklad
// Define myList.
CList<CString,CString&> myList;
// Add an element to the end of the list.
myList.AddTail(CString(_T("ABC")));
// Verify the element at the end position
// is the one added.
POSITION pos = myList.GetTailPosition();
ASSERT(CString(_T("ABC")) == myList.GetAt(pos));
CList::InsertAfter
Přidá prvek do tohoto seznamu za prvek na zadané pozici.
POSITION InsertAfter(POSITION position, ARG_TYPE newElement);
Parametry
position
Hodnota POSITION vrácená předchozím GetNext
voláním funkce , GetPrev
nebo Find
členské funkce.
ARG_TYPE
Parametr šablony určující typ prvku seznamu.
newElement
Prvek, který se má přidat do tohoto seznamu.
Návratová hodnota
Hodnota POSITION
, kterou lze použít pro iteraci nebo načtení elementu seznamu.
Příklad
// Define myList.
CList<CString, CString &> myList;
// Add three elements to the list.
POSITION pos = myList.AddHead(CString(_T("XYZ")));
pos = myList.InsertAfter(pos, CString(_T("ABC")));
pos = myList.InsertAfter(pos, CString(_T("123")));
// Verify the tail element is what's expected.
ASSERT(CString(_T("123")) == myList.GetTail());
CList::InsertBefore
Přidá prvek do tohoto seznamu před prvek na zadané pozici.
POSITION InsertBefore(POSITION position, ARG_TYPE newElement);
Parametry
position
POSITION
Hodnota vrácená předchozím GetNext
voláním funkce , GetPrev
nebo Find
členské funkce.
ARG_TYPE
Parametr šablony určující typ prvku seznamu (může být odkaz).
newElement
Prvek, který se má přidat do tohoto seznamu.
Návratová hodnota
Hodnota POSITION
, kterou lze použít pro iteraci nebo načtení elementu seznamu.
Poznámky
Pokud position
je NULL
, prvek se vloží do hlavy seznamu.
Příklad
// Define myList.
CList<CString, CString &> myList;
// Add three elements to the list.
POSITION pos = myList.AddHead(CString(_T("XYZ")));
pos = myList.InsertBefore(pos, CString(_T("ABC")));
pos = myList.InsertBefore(pos, CString(_T("123")));
// Verify the head element is what's expected.
ASSERT(CString(_T("123")) == myList.GetHead());
CList::IsEmpty
Určuje, zda tento seznam neobsahuje žádné prvky.
BOOL IsEmpty() const;
Návratová hodnota
Nenulové, pokud je tento seznam prázdný; jinak 0.
Příklad
// Define myList.
CList<CString, CString &> myList;
// Add three elements to the list.
myList.AddTail(CString(_T("XYZ")));
myList.AddTail(CString(_T("ABC")));
myList.AddTail(CString(_T("123")));
// Remove the head element until the list is empty.
CString str;
while (!myList.IsEmpty())
{
str = myList.RemoveHead();
TRACE(_T("%s\r\n"), (LPCTSTR)str);
}
CList::RemoveAll
Odebere všechny prvky z tohoto seznamu a uvolní přidruženou paměť.
void RemoveAll();
Poznámky
Pokud je seznam prázdný, nevygeneruje se žádná chyba.
Příklad
// Define myList.
CList<CString, CString&> myList;
// Add three elements to the list.
myList.AddTail(CString(_T("XYZ")));
myList.AddTail(CString(_T("ABC")));
myList.AddTail(CString(_T("123")));
// Remove all of the elements in the list.
myList.RemoveAll();
// Verify the list is empty.
ASSERT(myList.IsEmpty());
CList::RemoveAt
Odebere zadaný prvek z tohoto seznamu.
void RemoveAt(POSITION position);
Parametry
position
Pozice prvku, který má být odebrán ze seznamu.
Poznámky
Je nutné zajistit, aby hodnota POSITION
představovala platnou pozici v seznamu. Pokud je neplatná, pak ladicí verze knihovny tříd Microsoft Foundation asserts.
Příklad
// Define myList.
CList<CString, CString&> myList;
// Add three elements to the list.
myList.AddTail(CString(_T("XYZ")));
myList.AddTail(CString(_T("ABC")));
myList.AddTail(CString(_T("123")));
// Remove CString("ABC") from the list.
myList.RemoveAt(myList.FindIndex(1));
// Verify CString("ABC") is not in the list.
ASSERT(myList.Find(CString(_T("ABC"))) == NULL);
CList::RemoveHead
Odebere prvek z hlavy seznamu a vrátí ukazatel na něj.
TYPE RemoveHead();
Parametry
TYPE
Parametr šablony určující typ prvků v seznamu
Návratová hodnota
Prvek dříve v záhlaví seznamu.
Poznámky
Před voláním RemoveHead
je nutné zajistit, aby seznam nebyl prázdný . Pokud je seznam prázdný, pak ladicí verze knihovny tříd Microsoft Foundation se uplatní. Slouží IsEmpty
k ověření, zda seznam obsahuje prvky.
Příklad
// Define myList.
CList<CString, CString&> myList;
// Add two elements to the list.
myList.AddHead(CString(_T("ABC")));
myList.AddHead(CString(_T("123")));
// Remove the head element and verify the list.
// NOTE: once the head is removed, the number of
// elements in the list will be one.
CString strHead = myList.RemoveHead();
ASSERT((CString(_T("123")) == strHead) && (myList.GetCount() == 1) &&
(CString(_T("ABC")) == myList.GetHead()));
CList::RemoveTail
Odebere prvek z konce seznamu a vrátí ukazatel na něj.
TYPE RemoveTail();
Parametry
TYPE
Parametr šablony určující typ prvků v seznamu
Návratová hodnota
Prvek, který byl na konci seznamu.
Poznámky
Před voláním RemoveTail
je nutné zajistit, aby seznam nebyl prázdný . Pokud je seznam prázdný, pak ladicí verze knihovny tříd Microsoft Foundation se uplatní. Slouží IsEmpty
k ověření, zda seznam obsahuje prvky.
Příklad
// Define myList.
CList<CString, CString &> myList;
// Add two elements to the list.
myList.AddTail(CString(_T("ABC")));
myList.AddTail(CString(_T("123")));
// Remove the tail element and verify the list.
// NOTE: once the tail is removed, the number of
// elements in the list will be one.
CString strTail = myList.RemoveTail();
ASSERT((CString(_T("123")) == strTail) && (myList.GetCount() == 1) &&
(CString(_T("ABC")) == myList.GetTail()));
CList::SetAt
Proměnná typu POSITION
je klíčem pro seznam.
void SetAt(POSITION pos, ARG_TYPE newElement);
Parametry
pos
Prvek POSITION
, který se má nastavit.
ARG_TYPE
Parametr šablony určující typ prvku seznamu (může být odkaz).
newElement
Prvek, který se má přidat do seznamu.
Poznámky
Není to stejné jako index a nemůžete pracovat s POSITION
hodnotou sami. SetAt
zapíše prvek na zadanou pozici v seznamu.
Je nutné zajistit, aby hodnota POSITION
představovala platnou pozici v seznamu. Pokud je neplatná, pak ladicí verze knihovny tříd Microsoft Foundation asserts.
Příklad
// Define myList.
CList<CString, CString &> myList;
// Add three elements to the list.
myList.AddTail(CString(_T("XYZ")));
myList.AddTail(CString(_T("ABC")));
myList.AddTail(CString(_T("123")));
// Replace CString("ABC") with CString("CBA")
POSITION pos = myList.Find(CString(_T("ABC")));
myList.SetAt(pos, CString(_T("CBA")));
// Verify CString("ABC") is not in the list.
ASSERT(myList.Find(CString(_T("ABC"))) == NULL);
Viz také
Mfc – ukázka COLLECT
CObject
Třída
Graf hierarchie
CMap
Třída
CArray
Třída