Figure 2: Simple example of iterating over MFC collections

CArray<foo*, foo*> mfc_afoo;
CList<foo*, foo*> mfc_lfoo;
CMap<int, int, foo*, foo*> mfc_mfoo;

for (int aii=0; aii<mfc_afoo.GetSize(); ++aii)
   ;
for (POSITION lpos=mfc_lfoo.GetHeadPosition(); lpos!=NULL; )
   foo *p = mfc_lfoo.GetNext(lpos);

for (POSITION mpos=mfc_mfoo.GetStartPosition(); mpos!=NULL; )
     {
     int i;
     foo *p;
     mfc_mfoo.GetNextAssoc(mpos, i, p);
     }