CObArray::RemoveAt
Entfernt eine oder mehrere Elemente, die mit einem angegebenen Index in einem Array starten.
void RemoveAt(
INT_PTR nIndex,
INT_PTR nCount = 1
);
Parameter
nIndex
Ein ganzzahlige Index, der größer oder gleich 0 und kleiner oder gleich dem Wert, der von GetUpperBound zurückgegeben wird.nCount
Die Anzahl der zu entfernenden Elemente.
Hinweise
Im Prozess rückt es um alle Elemente über den entfernten Elemente.Es verringert, die Obergrenze des Arrays gibt jedoch kein Arbeitsspeicher frei.
Wenn Sie versuchen, mehr Elemente als zu entfernen, im Array über dem Entfernenpunkt enthalten sind, dann die Debugversion der Bibliotheksassertionen.
Die RemoveAt-Funktion entfernt den CObject Zeiger aus dem Array, jedoch wird nicht das Objekt selbst.
In der folgenden Tabelle werden andere Memberfunktionen auf, die mit CObArray::RemoveAt ähneln.
Klasse |
Memberfunktion |
---|---|
void RemoveAt( INT_PTR nIndex, INT_PTR nCount = 1 ); |
|
void RemoveAt( INT_PTR nIndex, INT_PTR nCount = 1 ); |
|
void RemoveAt( INT_PTR nIndex, INT_PTR nCount = 1 ); |
|
void RemoveAt( INT_PTR nIndex, INT_PTR nCount = 1 ); |
|
void RemoveAt( INT_PTR nIndex, INT_PTR nCount = 1 ); |
|
nCount = 1 );void RemoveAt( INT_PTRnIndex, INT_PTR |
Beispiel
Siehe CObList::CObList für Listen der CAge-Klasse, die in allen Auflistungsbeispielen verwendet wird.
CObArray arr;
CObject* pa;
arr.Add(new CAge(21)); // Element 0
arr.Add(new CAge(40)); // Element 1
if((pa = arr.GetAt(0)) != NULL)
{
arr.RemoveAt(0); // Element 1 moves to 0.
delete pa; // Delete the original element at 0.
}
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("RemoveAt example: ") << &arr << _T("\n");
#endif
Die Ergebnisse dieses Programms sind, wie folgt:
RemoveAt example: A CObArray with 1 elements
[0] = a CAge at $4606 40
Anforderungen
Header: afxcoll.h