## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# csList< T > Class Template Reference

A lightweight double-linked list template. More...

`#include <csutil/list.h>`

List of all members.

## Public Member Functions

| csList (const csList< T > &other)
| Copy constructor.
| csList ()
| Default constructor.
void | Delete (Iterator &it)
| Remove specific item by iterator.
void | DeleteAll ()
| Empty an list.
T & | Front () const
| Return first element of the list.
void | InsertAfter (Iterator &it, const T &item)
| Insert an item after the item the iterator is set to.
void | InsertBefore (Iterator &it, const T &item)
| Insert an item before the item the iterator is set to.
bool | IsEmpty () const
T & | Last () const
| Return last element of the list.
void | MoveAfter (const Iterator &it, const Iterator &item)
| Move an item (as iterator) after the item the iterator is set to.
void | MoveBefore (const Iterator &it, const Iterator &item)
| Move an item (as iterator) before the item the iterator is set to.
csList & | operator= (const csList< T > &other)
| Assignment, shallow copy.
bool | PopBack ()
| Deletes the last element of the list.
bool | PopFront ()
| Deletes the first element of the list.
Iterator | PushBack (const T &item)
| Add an item last in list. Copy T into the listdata.
Iterator | PushFront (const T &item)
| Add an item first in list. Copy T into the listdata.
| ~csList ()
| Destructor.

## Protected Member Functions

void | Delete (csListElement *el)
| Remove specific item by explicit ref.

## Friends

class | Iterator

## Classes

struct | csListElement
| Template which describes the data stored in the linked list For example a list of ints uses csListElement<int>. More...
class | Iterator
| Iterator for the list. More...

## Detailed Description

### template<class T>
class csList< T >

A lightweight double-linked list template.

Copies the elements into the list for storages. Assumes that type T supports copy construction.

Definition at line 34 of file list.h.

## Constructor & Destructor Documentation

template<class T>
csList< T >::csList | ( |  | ) | `[inline]`

| Default constructor. Definition at line 62 of file list.h.

template<class T>
csList< T >::csList | ( | const csList< T > & | other | ) | `[inline]`

| Copy constructor. Definition at line 269 of file list.h. References csList< T >::csListElement::data, csList< T >::head, csList< T >::csListElement::next, and csList< T >::PushBack().

template<class T>
csList< T >::~csList | ( |  | ) | `[inline]`

| Destructor. Definition at line 68 of file list.h.

## Member Function Documentation

template<class T>
void csList< T >::Delete | ( | Iterator & | it | ) | `[inline]`

| Remove specific item by iterator. Definition at line 424 of file list.h. References CS_ASSERT, csList< T >::Delete(), csList< T >::Iterator::HasCurrent(), csList< T >::Iterator::IsReverse(), and csList< T >::Iterator::ptr.

template<class T>
void csList< T >::Delete | ( | csListElement * | el | ) | `[inline, protected]`

| Remove specific item by explicit ref. Definition at line 439 of file list.h. References CS_ASSERT, csList< T >::csListElement::next, and csList< T >::csListElement::prev. Referenced by csList< T >::Delete(), csList< iEventHandler * >::PopBack(), and csList< iEventHandler * >::PopFront().

template<class T>
void csList< T >::DeleteAll | ( |  | ) | `[inline]`

| Empty an list. Definition at line 295 of file list.h. References csList< T >::csListElement::next. Referenced by csList< T >::operator=(), and csList< iEventHandler * >::~csList().

template<class T>
T& csList< T >::Front | ( |  | ) | const`[inline]`

| Return first element of the list. Definition at line 232 of file list.h.

template<class T>
void csList< T >::InsertAfter | ( | Iterator & | it,
|  | const T & | item
| ) | `[inline]`

| Insert an item after the item the iterator is set to. Definition at line 334 of file list.h. References CS_ASSERT, csList< T >::Iterator::HasCurrent(), csList< T >::csListElement::next, csList< T >::csListElement::prev, and csList< T >::Iterator::ptr.

template<class T>
void csList< T >::InsertBefore | ( | Iterator & | it,
|  | const T & | item
| ) | `[inline]`

| Insert an item before the item the iterator is set to. Definition at line 349 of file list.h. References CS_ASSERT, csList< T >::Iterator::HasCurrent(), csList< T >::csListElement::next, csList< T >::csListElement::prev, and csList< T >::Iterator::ptr.

template<class T>
T& csList< T >::Last | ( |  | ) | const`[inline]`

| Return last element of the list. Definition at line 235 of file list.h.

template<class T>
void csList< T >::MoveAfter | ( | const Iterator & | it,
|  | const Iterator & | item
| ) | `[inline]`

| Move an item (as iterator) after the item the iterator is set to. Definition at line 364 of file list.h. References CS_ASSERT, csList< T >::Iterator::HasCurrent(), csList< T >::csListElement::next, csList< T >::csListElement::prev, and csList< T >::Iterator::ptr.

template<class T>
void csList< T >::MoveBefore | ( | const Iterator & | it,
|  | const Iterator & | item
| ) | `[inline]`

| Move an item (as iterator) before the item the iterator is set to. Definition at line 394 of file list.h. References CS_ASSERT, csList< T >::Iterator::HasCurrent(), csList< T >::csListElement::next, csList< T >::csListElement::prev, and csList< T >::Iterator::ptr.

template<class T>
csList< T > & csList< T >::operator= | ( | const csList< T > & | other | ) | `[inline]`

| Assignment, shallow copy. Definition at line 281 of file list.h. References csList< T >::csListElement::data, csList< T >::DeleteAll(), csList< T >::head, csList< T >::csListElement::next, and csList< T >::PushBack().

template<class T>
bool csList< T >::PopBack | ( |  | ) | `[inline]`

| Deletes the last element of the list. Definition at line 248 of file list.h.

template<class T>
bool csList< T >::PopFront | ( |  | ) | `[inline]`

| Deletes the first element of the list. Definition at line 239 of file list.h.

template<class T>
typename_qualifier csList< T >::Iterator csList< T >::PushBack | ( | const T & | item | ) | `[inline]`

| Add an item last in list. Copy T into the listdata. Definition at line 309 of file list.h. References csList< T >::Iterator, and csList< T >::csListElement::next. Referenced by csList< T >::csList(), and csList< T >::operator=().

template<class T>
typename_qualifier csList< T >::Iterator csList< T >::PushFront | ( | const T & | item | ) | `[inline]`

| Add an item first in list. Copy T into the listdata. Definition at line 322 of file list.h. References csList< T >::Iterator, and csList< T >::csListElement::prev.

The documentation for this class was generated from the following file:

- csutil/list.h