读书人

获取CList某一节点的指针。该如何解决

发布时间: 2012-09-23 10:28:11 作者: rapoo

获取CList某一节点的指针。
今天在遍历CList链表的时候,我想当我访问某一节点的时候,为了便于下次查找,需要将指向这个节点的指针保存下来。
CList的数据成员中pNodeHead和pNodeTail在外层都是不能访问的。
请问一下还有其他的做法?

[解决办法]
楼主 保存下 POSITION 不就行了

CList.GetHeadPosition()
CList.GetTailPosition()

CList.GetAt(POSITION position)
CList.GetNext(POSITION & position)

这些接口 够你用了吧
[解决办法]
其实,POSITION就是指针

C/C++ code
template<class TYPE, class ARG_TYPE>AFX_INLINE TYPE CList<TYPE, ARG_TYPE>::GetNext(POSITION& rPosition) const // return *Position++    { CNode* pNode = (CNode*) rPosition;        ASSERT(AfxIsValidAddress(pNode, sizeof(CNode)));        rPosition = (POSITION) pNode->pNext;        return pNode->data; } 

读书人网 >VC/MFC

热点推荐