在 MFC 的 CTypedPtrList 类中,没有直接的 GetAt 方法用于获取链表中指定位置的元素。通常,您需要使用迭代器或 POSITION 对象来遍历链表并访问元素。

以下是一个示例,演示如何使用 GetAt 的等价物来获取链表中指定位置的元素:
// 假设有一个 CTypedPtrList<CObList, CMyObject*> 的链表
CTypedPtrList<CObList, CMyObject*> myObjectList;

// ... 在链表中添加元素 ...

// 获取链表中指定位置的元素
POSITION pos = myObjectList.GetHeadPosition();
int indexToRetrieve = 2;  // 以0为基础的索引
for (int i = 0; i < indexToRetrieve && pos != nullptr; ++i) {
    myObjectList.GetNext(pos);
}

if (pos != nullptr) {
    CMyObject* pElement = myObjectList.GetAt(pos);
    // 在这里使用 pElement,例如输出其属性值或进行其他操作
}

在这个示例中,通过循环和 GetNext 方法移动到链表中指定位置的元素,然后使用 GetAt 方法获取该位置上的元素。请注意,GetAt 方法的参数是一个 POSITION 对象,这表示元素的位置。

这种方式可以确保您访问链表中指定位置的元素,但需要小心处理边界情况,如索引超出链表范围的情况。


转载请注明出处:http://www.zyzy.cn/article/detail/22965/MFC/CTypedPtrList