CObList::RemoveAt

从此中移除指定元素的列表。

void RemoveAt(
   POSITION position 
);

参数

  • 定位
    从列表中移除的元素的位置。

备注

当从 CObList中移除元素,然后从列表中移除对象指针。您有责任删除对象。

您必须确保 POSITION 值表示列表中的有效位置。如果是无效的,则选件Microsoft基础类库的调试版本断言。

下表显示类似于 CObList::RemoveAt的其他成员函数。

成员函数

CPtrList

void RemoveAt( POSITION 位置);

CStringList

void RemoveAt( POSITION 位置);

示例

在移除元素列表迭代时,请小心。下面的示例演示确保 GetNext的活动 POSITION 值的一个删除技术。

用于列表 CAge 选件类参见 CObList::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      

从此过程的结果如下:

RemoveAt example: A CObList with 2 elements

a CAge at $4C1E 65

a CAge at $4B22 21

要求

Header: afxcoll.h

请参见

参考

CObList选件类

层次结构图