Microsoft Foundation Classes (mfc.hlp) (Table of Contents; Topic list)
CObList::RemoveAt
CObList                                     Up Contents Index Back
──Microsoft Foundation Classes──────────────────────────────────────────────
 
  void RemoveAt( POSITION position );
 
  Parameter   Description
 
  <position>  The position of the element to be removed from the list.
 
  Remarks
 
  Removes the specified element from this list.
 
  When you remove an element from a CObList, you remove the object pointer
  from the list. It is your responsibility to delete the objects
  themselves.
 
  You must ensure that your POSITION value represents a valid position in
  the list. If it is invalid, then the Debug version of the library
  asserts.
 
  Example
 
  Be careful when removing an element during a list iteration. The
  following example shows a removal technique that guarantees a good
  POSITION value for GetNext:
 
     CObList list;
     POSITION pos1, pos2;
     CObject* pa;
 
     list.AddHead( new CAge( 21 ) );
     list.AddHead( new CAge( 40 ) );
     list.AddHead( new CAge( 65 ) ); // List now contains (65 40, 21)
     for( pos1 = list.GetHeadPosition(); ( pos2 = pos1 ) != NULL; )
     {
         if( *(CAge*) list.GetNext( pos1 ) == CAge( 40 ) )
         {
             pa = list.GetAt( pos2 ); // Save the old pointer for deletion
             list.RemoveAt( pos2 );
             delete pa; // Deletion avoids memory leak
         }
     }
  #ifdef _DEBUG
     afxDump.SetDepth( 1 );
     afxDump << "RemoveAt example: " << &list << "\n";
  #endif
 
  The results from this program are as follows:
 
  RemoveAt example: A CObList with 2 elements
      a CAge at $4C1E 65
      a CAge at $4B22 21
 
 
                                     -♦-