在MFC中有几种公共集合类来处理数组,如:
CTypePtrList<CObList,CStudent*> m_list;//CStudent须继承自CObject类

CArray<int,int> m_aArray;//数组,用来存储成员,模板类

CTypePtrArray<CObArray,CStudent&> m_ptrArray;//存储指针模板类

CStringList  m_strList;//字符串链表,非模板类

不管是遍历模板类还是非模板类如下:

CStringList  m_strList;
...
POSITION pos;
pos = m_strList.GetHeadPosition();
while(NULL!=pos)
{
   ((CString)m_strList.GetNext(pos)).Empty();
}
lines.RemoveAll();

添加数据:

void CEx_View::OnAdd()
{
   UpdateData();
   CEx_DocViewDoc * pDoc = GetDocument();
   ASSERT_VALID(pDoc);
   CStudent * pStudent;
   pStudent = new CStudent(m_nCode,m_sName,m_lAge,m_fScore);
   pDoc->m_dataList.AddTail(pStudent);
   pDoc->curPos = pDoc->m_dataList.GetHeadPosition();//记住指针的位置
}

清空数组:

void CEx_DocViewDoc::DeleteContents()
{
    while(!m_dataList.IsEmpty())
    delete m_dataList.RemoveHead();//删除数组元素,且同时删除指针对象
    CDocment::DeleteContents();
}

获取其中一个元素:

CStudent * pStudent = (CStudent*)pDoc->m_dataList.GetAt(pDoc->curPos);