hur.cn - 华软网

 热门搜索

MFC文档序列化CObList的链表遍历与修改问题

  作者:未知    来源:网络    更新时间:2010/12/19
照着《C++面向对象程序设计》上写了一个雇员信息系统
给自定义的employee类继承了CObject,一些类的改造也完成
现在添加数据使用的是

C++">
         //将类的数据放入链表
         CMyDoc* pDoc=GetDocument();
ASSERT_VALID(pDoc);
pDoc->SetModifiedFlag();
pDoc->UpdateAllViews(NULL);
pDoc->employeelist.AddTail(com);//com是自定义类employee *com;的指针
         ................

         //遍历链表 输出
CMyDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
POSITION pos=pDoc->employeelist.GetHeadPosition();

while (pos!=NULL)
{
com=(employee*)pDoc->employeelist.GetNext(pos);
          ...........

先将控件绑定的变量赋给类 再将类中数据写入CObList链表
现在输入输出 保存读取都没有问题

现在的问题是 我想加入查询/修改功能,在链表中查找到相应元素后,修改它

pDoc->employeelist.GetNext(pos) 我自己理解是将当前链表数据指针赋给pos,之后指针指向下一元素
而pDoc->employeelist.AddTail(com);是将我的自定义类数据添加到队尾

我需要一个函数,当链表遍历到正确的元素,将当前的链表元素数据修改
求教各位~
---华软 网友回答---
 while (pos!=NULL)
{
    POSITION oldpos = pos;
    com=(employee*)pDoc->employeelist.GetNext(pos);
    //判断com是否为空
    if(com != NULL)
    {//修改数据
       pDoc->employeelist.SetAt( oldpos ,新数据);
    }
}
---华软网友回复---

解决了 多谢
---华软网友回复---
果断学习      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。