CObList Class
Supports ordered lists of nonunique CObject pointers accessible sequentially or by pointer value.
class CObList : public CObject
Members
Public Constructors
Name |
Description |
---|---|
Constructs an empty list for CObject pointers. |
Public Methods
Name |
Description |
---|---|
Adds an element (or all the elements in another list) to the head of the list (makes a new head). |
|
Adds an element (or all the elements in another list) to the tail of the list (makes a new tail). |
|
Gets the position of an element specified by pointer value. |
|
Gets the position of an element specified by a zero-based index. |
|
Gets the element at a given position. |
|
Returns the number of elements in this list. |
|
Returns the head element of the list (cannot be empty). |
|
Returns the position of the head element of the list. |
|
Gets the next element for iterating. |
|
Gets the previous element for iterating. |
|
Returns the number of elements in this list. |
|
Returns the tail element of the list (cannot be empty). |
|
Returns the position of the tail element of the list. |
|
Inserts a new element after a given position. |
|
Inserts a new element before a given position. |
|
Tests for the empty list condition (no elements). |
|
Removes all the elements from this list. |
|
Removes an element from this list, specified by position. |
|
Removes the element from the head of the list. |
|
Removes the element from the tail of the list. |
|
Sets the element at a given position. |
Remarks
CObList lists behave like doubly-linked lists.
A variable of type POSITION is a key for the list. You can use a POSITION variable both 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.
CObList incorporates the IMPLEMENT_SERIAL macro to support serialization and dumping of its elements. If a list of CObject pointers is stored to an archive, either with an overloaded insertion operator or with the Serialize member function, each CObject element is serialized in turn.
If you need a dump of individual CObject elements in the list, you must set the depth of the dump context to 1 or greater.
When a CObList object is deleted, or when its elements are removed, only the CObject pointers are removed, not the objects they reference.
You can derive your own classes from CObList. Your new list class, designed to hold pointers to objects derived from CObject, adds new data members and new member functions. Note that the resulting list is not strictly type safe, because it allows insertion of any CObject pointer.
Note
You must use the IMPLEMENT_SERIAL macro in the implementation of your derived class if you intend to serialize the list.
For more information on using CObList, see the article Collections.
Inheritance Hierarchy
CObList
Requirements
Header: afxcoll.h