各位大虾:
    我从CList类继承了一个类叫Mylist,其中有一个函数是这么写的:
BOOL Mylist::MLExport(double *pData, int Size)
{
Size = Size>m_nCount?m_nCount:Size;
for (int i = 0 ; i< Size; i++)
pData[i]=GetAt(FindIndex(i));
return true;
}
其中:m_nCount标识的是MyList类中成员的个数,这个函数的作用是将MyList中的数据导入到一个数组指针中。
问题:为什么这个函数在执行的过程中,运行时间会越来越长?有解决方法吗?
运行的时间图:如下

解决方案 »

  1.   

    你用FindIndex是什么意思?
    POSITION FindIndex(int nIndex) const;
    它返回的是个POSITION,你记录它干嘛???
      

  2.   

    应该用 POSITION GetHeadPosition() const;
    来获取列表头,然后用TYPE& GetNext(POSITION& rPosition);来逐个获取数据
      

  3.   


    GetNext(POSITION& rPosition)函数不是也得需要一个POSITION类型的变量吗?不过你说的我可以试一试。
      

  4.   

    是需要这个变量啊,但用GetHeadPosition就可以获得了啊。
    GetAt(FindIndex())这多负责啊。