CSimpleArray – třída
Tato třída poskytuje metody pro správu jednoduchého pole.
Syntaxe
template <class T, class TEqual = CSimpleArrayEqualHelper<T>>
class CSimpleArray
Parametry
T
Typ dat, která se mají uložit do pole.
TEqual
Objekt vlastnosti definující test rovnosti prvků typu T.
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CSimpleArray::CSimpleArray | Konstruktor jednoduchého pole. |
CSimpleArray::~CSimpleArray | Destruktor jednoduchého pole. |
Veřejné metody
Název | Popis |
---|---|
CSimpleArray::Add | Přidá do pole nový prvek. |
CSimpleArray::Find | Vyhledá prvek v poli. |
CSimpleArray::GetData | Vrátí ukazatel na data uložená v poli. |
CSimpleArray::GetSize | Vrátí počet prvků uložených v poli. |
CSimpleArray::Remove | Odebere daný prvek z pole. |
CSimpleArray::RemoveAll | Odebere všechny prvky z pole. |
CSimpleArray::RemoveAt | Odebere zadaný prvek z pole. |
CSimpleArray::SetAtIndex | Nastaví zadaný prvek v poli. |
Veřejné operátory
Název | Popis |
---|---|
CSimpleArray::operator[] | Načte prvek z pole. |
CSimpleArray::operator = | Operátor přiřazení. |
Poznámky
CSimpleArray
poskytuje metody pro vytváření a správu jednoduchého pole libovolného typu T
.
TEqual
Parametr poskytuje způsob definování funkce rovnosti pro dva prvky typu T
. Vytvořením třídy podobné CSimpleArrayEqualHelper je možné změnit chování testu rovnosti pro jakékoli dané pole. Například při práci s polem ukazatelů může být užitečné definovat rovnost v závislosti na hodnotách, na které odkazují ukazatele. Výchozí implementace využívá operator=().
CSimpleMap CSimpleArray
jsou navržené pro malý počet prvků. CAtlArray a CAtlMap by se měly použít, pokud pole obsahuje velký počet prvků.
Požadavky
Hlavička: atlsimpcoll.h
Příklad
// Create an array of integers
CSimpleArray<int> iArray;
// Create an array of char pointers
// and use a new equality function
CSimpleArray<char *, MyEqualityEqualHelper<char *> > cMyArray;
CSimpleArray::Add
Přidá do pole nový prvek.
BOOL Add(const T& t);
Parametry
t
Prvek, který chcete přidat do pole.
Návratová hodnota
Vrátí hodnotu TRUE, pokud je prvek úspěšně přidán do pole, false jinak.
Příklad
// Create an array of integers and add some elements
CSimpleArray<int> iMyArray;
for (int i = 0; i < 10; i++)
iMyArray.Add(i);
CSimpleArray::CSimpleArray
Konstruktor pro objekt pole.
CSimpleArray(const CSimpleArray<T, TEqual>& src);
CSimpleArray();
Parametry
Src
Existující objekt CSimpleArray
.
Poznámky
Inicializuje datové členy, vytvoří nový prázdný CSimpleArray
objekt nebo kopii existujícího CSimpleArray
objektu.
CSimpleArray::~CSimpleArray
Destruktor.
~CSimpleArray();
Poznámky
Uvolní všechny přidělené prostředky.
CSimpleArray::Find
Vyhledá prvek v poli.
int Find(const T& t) const;
Parametry
t
Prvek, pro který se má hledat.
Návratová hodnota
Vrátí index nalezeného prvku nebo -1, pokud prvek nebyl nalezen.
Příklad
// Create an array of floats and search for a particular element
CSimpleArray<float> fMyArray;
for (int i = 0; i < 10; i++)
fMyArray.Add((float)i * 100);
int e = fMyArray.Find(200);
if (e == -1)
_tprintf_s(_T("Could not find element\n"));
else
_tprintf_s(_T("Found the element at location %d\n"), e);
CSimpleArray::GetData
Vrátí ukazatel na data uložená v poli.
T* GetData() const;
Návratová hodnota
Vrátí ukazatel na data v poli.
CSimpleArray::GetSize
Vrátí počet prvků uložených v poli.
int GetSize() const;
Návratová hodnota
Vrátí počet prvků uložených v poli.
CSimpleArray::operator []
Načte prvek z pole.
T& operator[](int nindex);
Parametry
nIndex
Index elementu.
Návratová hodnota
Vrátí prvek pole odkazovaného nIndex.
Příklad
// Create an array and display its contents
CSimpleArray<int> iMySampleArray;
for (int i = 0; i < 10; i++)
iMySampleArray.Add(i);
for (int i = 0; i < iMySampleArray.GetSize(); i++)
_tprintf_s(_T("Array index %d contains %d\n"), i, iMySampleArray[i]);
CSimpleArray::operator =
Operátor přiřazení.
CSimpleArray<T, TEqual>
& operator=(
const CSimpleArray<T, TEqual>& src);
Parametry
Src
Pole, které chcete zkopírovat.
Návratová hodnota
Vrátí ukazatel na aktualizovaný CSimpleArray
objekt.
Poznámky
Zkopíruje všechny prvky z objektu CSimpleArray
, na který odkazuje src , do aktuálního objektu pole a nahradí všechna existující data.
Příklad
// Create an array of chars and copy it to a second array
CSimpleArray<char> cMyArray1;
cMyArray1.Add('a');
CSimpleArray<char> cMyArray2;
cMyArray2 = cMyArray1;
ATLASSERT(cMyArray2[0] == 'a');
CSimpleArray::Remove
Odebere daný prvek z pole.
BOOL Remove(const T& t);
Parametry
t
Prvek, který chcete odebrat z pole.
Návratová hodnota
Vrátí hodnotu TRUE, pokud se prvek najde a odebere, jinak nePRAVDA.
Poznámky
Když je prvek odebrán, zbývající prvky v poli jsou přečíslovány tak, aby vyplnily prázdné místo.
CSimpleArray::RemoveAll
Odebere všechny prvky z pole.
void RemoveAll();
Poznámky
Odebere všechny prvky, které jsou aktuálně uloženy v poli.
CSimpleArray::RemoveAt
Odebere zadaný prvek z pole.
BOOL RemoveAtint nIndex);
Parametry
nIndex
Index odkazující na prvek, který se má odebrat.
Návratová hodnota
Vrátí hodnotu TRUE, pokud byl prvek odebrán, nePRAVDA, pokud byl index neplatný.
Poznámky
Když je prvek odebrán, zbývající prvky v poli jsou přečíslovány tak, aby vyplnily prázdné místo.
CSimpleArray::SetAtIndex
Nastavte zadaný prvek v poli.
BOOL SetAtIndex(
int nIndex,
const T& t);
Parametry
nIndex
Index prvku, který chcete změnit.
t
Hodnota, která se má přiřadit k zadanému prvku.
Návratová hodnota
Pokud je index úspěšný, vrátí hodnotu PRAVDA, pokud index není platný.