CObList::RemoveAt

void RemoveAt( POSITION position );

Parameters

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 Microsoft Foundation Class Library asserts.

Example

Be careful when removing an element during a list iteration. The following example shows a removal technique that guarantees a valid 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

CObList OverviewClass MembersHierarchy Chart