CList Class
Collapse the table of content
Expand the table of content
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer

CList Class 

Supports ordered lists of nonunique objects accessible sequentially or by value.

template< class TYPE, class ARG_TYPE = const TYPE& > 
class CList : public CObject



Type of object stored in the list.


Type used to reference objects stored in the list. Can be a reference.

CList lists behave like doubly-linked lists.

A variable of type POSITION is a key for the list. You can use a POSITION variable as an iterator to traverse a list sequentially and as a bookmark to hold a place. A position is not the same as an index, however.

Element insertion is very fast at the list head, at the tail, and at a known POSITION. A sequential search is necessary to look up an element by value or index. This search can be slow if the list is long.

If you need a dump of individual elements in the list, you must set the depth of the dump context to 1 or greater.

Certain member functions of this class call global helper functions that must be customized for most uses of the CList class. See Collection Class Helpers in the "Macros and Globals" section.

For more information on using CList, see the article Collections.

// CList is a template class that takes two template arguments.
// The first argument is type stored internally by the list, the
// second argument is the type used in the arguments for the
// CList methods.

// This code defines a list of ints.
CList<int,int> myList;

// This code defines a list of CStrings
CList<CString,CString&> myList;

// This code defines a list of MYTYPEs,
//NOTE: MYTYPE could be any struct, class or type definition

Header: afxtempl.h

© 2015 Microsoft