blocxx
Public Types | Public Member Functions | Private Types | Private Attributes | Friends

BLOCXX_NAMESPACE::List< T > Class Template Reference

This class is a wrapper around std::list<> and adds COW capabilities. More...

#include <List.hpp>

List of all members.

Public Types

typedef L::value_type value_type
typedef L::pointer pointer
typedef L::const_pointer const_pointer
typedef L::reference reference
typedef L::const_reference const_reference
typedef L::size_type size_type
typedef L::difference_type difference_type
typedef L::iterator iterator
typedef L::const_iterator const_iterator
typedef L::reverse_iterator reverse_iterator
typedef L::const_reverse_iterator const_reverse_iterator

Public Member Functions

 List ()
 Default Constructor.
 List (L *toWrap)
 Constructor.
template<class InputIterator >
 List (InputIterator first, InputIterator last)
 Construct a List from a range specified with InputIterators.
 List (size_type n, const T &value)
 Construct a List that consist of a specified number of elements that are copies of a given object.
 List (int n, const T &value)
 Construct a List that consist of a specified number of elements that are copies of a given object.
 List (long n, const T &value)
 Construct a List that consist of a specified number of elements that are copies of a given object.
 List (size_type n)
 Construct a List that consist of a specified number of elements that have be constructed using the default constructor of class T.
LgetImpl ()
 
iterator begin ()
const_iterator begin () const
iterator end ()
const_iterator end () const
reverse_iterator rbegin ()
const_reverse_iterator rbegin () const
reverse_iterator rend ()
const_reverse_iterator rend () const
bool empty () const
size_type size () const
size_type max_size () const
reference front ()
const_reference front () const
reference back ()
const_reference back () const
void swap (List< T > &x)
 Exchanges the elements of the current list with those of another.
iterator insert (iterator position, const T &x)
 Insert an element to the List before the element specified by the iterator.
iterator insert (iterator position)
 Insert an default-constructed element to the List before the element specified by the iterator.
template<class InputIterator >
void insert (iterator position, InputIterator first, InputIterator last)
 Insert a range of elements before a given position in the List.
void insert (iterator pos, size_type n, const T &x)
 Insert a specified number of elements that are copies of a given object before the given position in the List.
void insert (iterator pos, int n, const T &x)
 Insert a specified number of elements that are copies of a given object before the given position in the List.
void insert (iterator pos, long n, const T &x)
 Insert a specified number of elements that are copies of a given object before the given position in the List.
void push_front (const T &x)
 Prepend the specified element at the front of the List.
void push_back (const T &x)
 Append the specified element to the end of the List.
iterator erase (iterator position)
 Remove an element from the List specified with an iterator.
iterator erase (iterator first, iterator last)
 Remove elements from the List specified by a beginning and ending iterator.
void resize (size_type new_size, const T &x)
 Ensure the List has a given size.
void resize (size_type new_size)
 Ensure the List has a given size appending a default-constructed object to the end of the List if it is enlarged.
void clear ()
 Remove all items from the List.
const_iterator find (const T &x, const_iterator first, const_iterator last) const
 Find element x in the list range specified by the first and last iterators.
const_iterator find (const T &x) const
 Find element x in the list.
iterator find (const T &x, iterator first, iterator last)
 Find element x in the list range specified by the first and last iterators.
iterator find (const T &x)
 Find element x in the list.
bool contains (const T &x, const_iterator first, const_iterator last) const
 Determine if element x is contained in the list range specified by the first and last iterators.
bool contains (const T &x) const
 Determine if element x is contained in the list.
void pop_front ()
 Remove the first element in the List.
void pop_back ()
 Remove the last element in the List.
void splice (iterator position, List &x)
 Move the specified list into the current list at the given position.
void splice (iterator position, List &x, iterator i)
 Move the specified element from list x pointed to by iterator i into the current list at the given position.
void splice (iterator position, List &x, iterator first, iterator last)
 Move the elements from list x specified by first and last iterators into the current list at the given position.
void remove (const T &value)
 Remove the specified element from the List.
void unique ()
 Remove all duplicate elements from the List.
void merge (List &x)
 Merge the current and specified lists, producing a combined list that is ordered with respect to the < operator.
void reverse ()
 Reverse the order of elements in the list.
void sort ()
 Sort the list using the < operator to compare elements.
template<class Predicate >
void remove_if (Predicate p)
 Removes all elements from the list for which the unary predicate p is true.
template<class BinaryPredicate >
void unique (BinaryPredicate bp)
 Remove all elements from the List for which the binary predicate bp is true.
template<class StrictWeakOrdering >
void merge (List &x, StrictWeakOrdering swo)
 Merge the current and specified list, producing a combined list that is ordered with respect to the specified comparisation class.
template<class StrictWeakOrdering >
void sort (StrictWeakOrdering swo)
 Sort the list using the specified comparisation class.

Private Types

typedef std::list< T > L

Private Attributes

COWReference< Lm_impl

Friends

bool operator== (const List< T > &x, const List< T > &y)
 Determine equality of two Lists comparing the size of both lists and all elements in the same position using the elements "==" operator.
bool operator< (const List< T > &x, const List< T > &y)
 Determine if one Lists is less than another comparing the size of both lists and all their elements.

Detailed Description

template<class T>
class BLOCXX_NAMESPACE::List< T >

This class is a wrapper around std::list<> and adds COW capabilities.

Definition at line 60 of file List.hpp.


Member Typedef Documentation

template<class T>
typedef L::const_iterator BLOCXX_NAMESPACE::List< T >::const_iterator

Definition at line 74 of file List.hpp.

template<class T>
typedef L::const_pointer BLOCXX_NAMESPACE::List< T >::const_pointer

Definition at line 68 of file List.hpp.

template<class T>
typedef L::const_reference BLOCXX_NAMESPACE::List< T >::const_reference

Definition at line 70 of file List.hpp.

template<class T>
typedef L::const_reverse_iterator BLOCXX_NAMESPACE::List< T >::const_reverse_iterator

Definition at line 76 of file List.hpp.

template<class T>
typedef L::difference_type BLOCXX_NAMESPACE::List< T >::difference_type

Definition at line 72 of file List.hpp.

template<class T>
typedef L::iterator BLOCXX_NAMESPACE::List< T >::iterator

Definition at line 73 of file List.hpp.

template<class T>
typedef std::list<T> BLOCXX_NAMESPACE::List< T >::L [private]

Definition at line 63 of file List.hpp.

template<class T>
typedef L::pointer BLOCXX_NAMESPACE::List< T >::pointer

Definition at line 67 of file List.hpp.

template<class T>
typedef L::reference BLOCXX_NAMESPACE::List< T >::reference

Definition at line 69 of file List.hpp.

template<class T>
typedef L::reverse_iterator BLOCXX_NAMESPACE::List< T >::reverse_iterator

Definition at line 75 of file List.hpp.

template<class T>
typedef L::size_type BLOCXX_NAMESPACE::List< T >::size_type

Definition at line 71 of file List.hpp.

template<class T>
typedef L::value_type BLOCXX_NAMESPACE::List< T >::value_type

Definition at line 66 of file List.hpp.


Constructor & Destructor Documentation

template<class T>
BLOCXX_NAMESPACE::List< T >::List ( ) [inline]

Default Constructor.

Definition at line 81 of file List.hpp.

template<class T>
BLOCXX_NAMESPACE::List< T >::List ( L toWrap) [inline, explicit]

Constructor.

Parameters:
toWrapThe std::list to wrap with this List object.

Definition at line 86 of file List.hpp.

template<class T>
template<class InputIterator >
BLOCXX_NAMESPACE::List< T >::List ( InputIterator  first,
InputIterator  last 
) [inline]

Construct a List from a range specified with InputIterators.

Parameters:
firstThe iterator for the beginning of the range.
lastThe iterator for the end of the range.

Definition at line 95 of file List.hpp.

template<class T>
BLOCXX_NAMESPACE::List< T >::List ( size_type  n,
const T &  value 
) [inline]

Construct a List that consist of a specified number of elements that are copies of a given object.

Parameters:
nNumber of elements the List will contain.
valueThe value every element of the List will be initialized to.

Definition at line 106 of file List.hpp.

template<class T>
BLOCXX_NAMESPACE::List< T >::List ( int  n,
const T &  value 
) [inline]

Construct a List that consist of a specified number of elements that are copies of a given object.

Parameters:
nNumber of elements the List will contain.
valueThe value every element of the List will be initialized to.

Definition at line 116 of file List.hpp.

template<class T>
BLOCXX_NAMESPACE::List< T >::List ( long  n,
const T &  value 
) [inline]

Construct a List that consist of a specified number of elements that are copies of a given object.

Parameters:
nNumber of elements the List will contain.
valueThe value every element of the List will be initialized to.

Definition at line 126 of file List.hpp.

template<class T>
BLOCXX_NAMESPACE::List< T >::List ( size_type  n) [inline, explicit]

Construct a List that consist of a specified number of elements that have be constructed using the default constructor of class T.

Parameters:
nNumber of elements the List will contain.

Definition at line 134 of file List.hpp.


Member Function Documentation

template<class T>
reference BLOCXX_NAMESPACE::List< T >::back ( ) [inline]
Returns:
A read/write reference to the last element in the List.

Definition at line 255 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
const_reference BLOCXX_NAMESPACE::List< T >::back ( ) const [inline]
Returns:
A read only reference to the last element in the List.

Definition at line 262 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
iterator BLOCXX_NAMESPACE::List< T >::begin ( ) [inline]
Returns:
A read/write iterator that points to the first element in the List. Iteration is done in the normal order (1st to last) with the returned iterator.

Definition at line 150 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

Referenced by BLOCXX_NAMESPACE::List< T >::contains(), and BLOCXX_NAMESPACE::List< T >::find().

template<class T>
const_iterator BLOCXX_NAMESPACE::List< T >::begin ( ) const [inline]
Returns:
A read only iterator that points to the first element in the List. Iteration is done in the normal order (1st to last) with the returned iterator.

Definition at line 159 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
void BLOCXX_NAMESPACE::List< T >::clear ( ) [inline]

Remove all items from the List.

The size() of the List should be zero after calling this method.

Definition at line 414 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
bool BLOCXX_NAMESPACE::List< T >::contains ( const T &  x,
const_iterator  first,
const_iterator  last 
) const [inline]

Determine if element x is contained in the list range specified by the first and last iterators.

Parameters:
xThe element to seach for.
firstThe first position iterator; begin of the range.
lastThe last position iterator; end of the range.
Returns:
true if the element x is contained in the specified range of the list.

Definition at line 488 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::end(), and BLOCXX_NAMESPACE::List< T >::find().

template<class T>
bool BLOCXX_NAMESPACE::List< T >::contains ( const T &  x) const [inline]

Determine if element x is contained in the list.

Parameters:
xThe element to seach for.
Returns:
true if the element x is contained in the list.

Definition at line 498 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::begin(), BLOCXX_NAMESPACE::List< T >::end(), and BLOCXX_NAMESPACE::List< T >::find().

template<class T>
bool BLOCXX_NAMESPACE::List< T >::empty ( ) const [inline]
Returns:
true if the List is empty (contains zero elements)

Definition at line 220 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
iterator BLOCXX_NAMESPACE::List< T >::end ( ) [inline]
Returns:
A read/write iterator that points to one past the last element in the List. Iteration is done in the normal order (1st to last) with the returned iterator.

Definition at line 168 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

Referenced by BLOCXX_NAMESPACE::List< T >::contains(), and BLOCXX_NAMESPACE::List< T >::find().

template<class T>
const_iterator BLOCXX_NAMESPACE::List< T >::end ( ) const [inline]
Returns:
A read only iterator that points to one past the last element in the List. Iteration is done in the normal order (1st to last) with the returned iterator.

Definition at line 177 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
iterator BLOCXX_NAMESPACE::List< T >::erase ( iterator  position) [inline]

Remove an element from the List specified with an iterator.

Parameters:
positionAn iterator that points to the element to be removed.
Returns:
An iterator that points to the element that was following the removed element in the List.

Definition at line 373 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
iterator BLOCXX_NAMESPACE::List< T >::erase ( iterator  first,
iterator  last 
) [inline]

Remove elements from the List specified by a beginning and ending iterator.

Parameters:
firstAn iterator that specifies the first element to remove.
lastAn iterator that specifies the last element to remove.
Returns:
An iterator that points to the element that was following the last removed element in the List.

Definition at line 386 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
iterator BLOCXX_NAMESPACE::List< T >::find ( const T &  x,
iterator  first,
iterator  last 
) [inline]

Find element x in the list range specified by the first and last iterators.

Parameters:
xThe element to seach for.
firstThe first position iterator; begin of the range.
lastThe last position iterator; end of the range.
Returns:
An read/write iterator pointing to the found element or the end iterator pointing one past the last element in the list.

Definition at line 458 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::end().

template<class T>
const_iterator BLOCXX_NAMESPACE::List< T >::find ( const T &  x) const [inline]

Find element x in the list.

Parameters:
xThe element to seach for.
Returns:
An read only iterator pointing to the found element or the end iterator pointing one past the last element in the list.

Definition at line 445 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::begin(), BLOCXX_NAMESPACE::List< T >::end(), and BLOCXX_NAMESPACE::List< T >::find().

template<class T>
iterator BLOCXX_NAMESPACE::List< T >::find ( const T &  x) [inline]

Find element x in the list.

Parameters:
xThe element to seach for.
Returns:
An read/write iterator pointing to the found element or the end iterator pointing one past the last element in the list.

Definition at line 475 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::begin(), BLOCXX_NAMESPACE::List< T >::end(), and BLOCXX_NAMESPACE::List< T >::find().

template<class T>
const_iterator BLOCXX_NAMESPACE::List< T >::find ( const T &  x,
const_iterator  first,
const_iterator  last 
) const [inline]

Find element x in the list range specified by the first and last iterators.

Parameters:
xThe element to seach for.
firstThe first position iterator; begin of the range.
lastThe last position iterator; end of the range.
Returns:
An read only iterator pointing to the found element or the end iterator pointing one past the last element in the list.

Definition at line 427 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::end().

Referenced by BLOCXX_NAMESPACE::List< T >::contains(), and BLOCXX_NAMESPACE::List< T >::find().

template<class T>
reference BLOCXX_NAMESPACE::List< T >::front ( ) [inline]
Returns:
A read/write reference to the first element in the List.

Definition at line 241 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
const_reference BLOCXX_NAMESPACE::List< T >::front ( ) const [inline]
Returns:
A read only reference to the first element in the List.

Definition at line 248 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
L* BLOCXX_NAMESPACE::List< T >::getImpl ( ) [inline]

Returns:
Pointer to the std::list object used to implement the List class.

Definition at line 141 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
iterator BLOCXX_NAMESPACE::List< T >::insert ( iterator  position,
const T &  x 
) [inline]

Insert an element to the List before the element specified by the iterator.

Parameters:
positionAn iterator that points to the insertion point. The element will be inserted before this point.
xThe element to insert into the List.
Returns:
An iterator that points to the newly inserted element.

Definition at line 282 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
iterator BLOCXX_NAMESPACE::List< T >::insert ( iterator  position) [inline]

Insert an default-constructed element to the List before the element specified by the iterator.

Parameters:
positionAn iterator that points to the insertion point. The element will be inserted before this point.
Returns:
An iterator that points to the newly inserted element.

Definition at line 293 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
template<class InputIterator >
void BLOCXX_NAMESPACE::List< T >::insert ( iterator  position,
InputIterator  first,
InputIterator  last 
) [inline]

Insert a range of elements before a given position in the List.

Parameters:
positionThe position to insert the elements at. The insertion will be done before this position.
firstThe beginning of the range of elements to insert.
lastThe end of the range of elements to insert.

Definition at line 305 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
void BLOCXX_NAMESPACE::List< T >::insert ( iterator  pos,
size_type  n,
const T &  x 
) [inline]

Insert a specified number of elements that are copies of a given object before the given position in the List.

Parameters:
posThe position to insert the elements before.
nNumber of elements to insert.
xThe value every newly inserted element of the List will be initialized to.

Definition at line 318 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
void BLOCXX_NAMESPACE::List< T >::insert ( iterator  pos,
int  n,
const T &  x 
) [inline]

Insert a specified number of elements that are copies of a given object before the given position in the List.

Parameters:
posThe position to insert the elements before.
nNumber of elements to insert.
xThe value every newly inserted element of the List will be initialized to.

Definition at line 331 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
void BLOCXX_NAMESPACE::List< T >::insert ( iterator  pos,
long  n,
const T &  x 
) [inline]

Insert a specified number of elements that are copies of a given object before the given position in the List.

Parameters:
posThe position to insert the elements before.
nNumber of elements to insert.
xThe value every newly inserted element of the List will be initialized to.

Definition at line 344 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
size_type BLOCXX_NAMESPACE::List< T >::max_size ( ) const [inline]
Returns:
The maximal number of elements the List can hold.

Definition at line 234 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
void BLOCXX_NAMESPACE::List< T >::merge ( List< T > &  x) [inline]

Merge the current and specified lists, producing a combined list that is ordered with respect to the < operator.

Parameters:
xThe list to merge with.

Definition at line 571 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
template<class StrictWeakOrdering >
void BLOCXX_NAMESPACE::List< T >::merge ( List< T > &  x,
StrictWeakOrdering  swo 
) [inline]

Merge the current and specified list, producing a combined list that is ordered with respect to the specified comparisation class.

Parameters:
swoThe comparisation functor class.

Definition at line 612 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
void BLOCXX_NAMESPACE::List< T >::pop_back ( ) [inline]

Remove the last element in the List.

Definition at line 512 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
void BLOCXX_NAMESPACE::List< T >::pop_front ( ) [inline]

Remove the first element in the List.

Definition at line 505 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
void BLOCXX_NAMESPACE::List< T >::push_back ( const T &  x) [inline]

Append the specified element to the end of the List.

Parameters:
xThe element to append to the end of the List.

Definition at line 362 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
void BLOCXX_NAMESPACE::List< T >::push_front ( const T &  x) [inline]

Prepend the specified element at the front of the List.

Parameters:
xThe element to prepend to the front of the List.

Definition at line 353 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
const_reverse_iterator BLOCXX_NAMESPACE::List< T >::rbegin ( ) const [inline]
Returns:
A read only reverse iterator that points to the last element in the List. Iteration is done in the reverse order (last to 1st) with the returned iterator.

Definition at line 195 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
reverse_iterator BLOCXX_NAMESPACE::List< T >::rbegin ( ) [inline]
Returns:
A read/write reverse iterator that points to the last element in the List. Iteration is done in the reverse order (last to 1st) with the returned iterator.

Definition at line 186 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
void BLOCXX_NAMESPACE::List< T >::remove ( const T &  value) [inline]

Remove the specified element from the List.

Parameters:
valueThe element to remove.

Definition at line 555 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
template<class Predicate >
void BLOCXX_NAMESPACE::List< T >::remove_if ( Predicate  p) [inline]

Removes all elements from the list for which the unary predicate p is true.

Parameters:
pThe unary predicate

Definition at line 594 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
reverse_iterator BLOCXX_NAMESPACE::List< T >::rend ( ) [inline]
Returns:
A read/write reverse iterator that points to one before the first element in the List. Iteration is done in the reverse order (last to 1st) with the returned iterator.

Definition at line 204 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
const_reverse_iterator BLOCXX_NAMESPACE::List< T >::rend ( ) const [inline]
Returns:
A read only reverse iterator that points to one before the first element in the List. Iteration is done in the reverse order (last to 1st) with the returned iterator.

Definition at line 213 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
void BLOCXX_NAMESPACE::List< T >::resize ( size_type  new_size) [inline]

Ensure the List has a given size appending a default-constructed object to the end of the List if it is enlarged.

Parameters:
new_sizeThe new size of the List.

Definition at line 406 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
void BLOCXX_NAMESPACE::List< T >::resize ( size_type  new_size,
const T &  x 
) [inline]

Ensure the List has a given size.

Parameters:
new_sizeThe new size of the List.
xAn object to append to the end of the List if it is enlarged.

Definition at line 396 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
void BLOCXX_NAMESPACE::List< T >::reverse ( ) [inline]

Reverse the order of elements in the list.

Definition at line 578 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
size_type BLOCXX_NAMESPACE::List< T >::size ( ) const [inline]
Returns:
The number of elements in the List.

Definition at line 227 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
void BLOCXX_NAMESPACE::List< T >::sort ( ) [inline]

Sort the list using the < operator to compare elements.

Definition at line 585 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
template<class StrictWeakOrdering >
void BLOCXX_NAMESPACE::List< T >::sort ( StrictWeakOrdering  swo) [inline]

Sort the list using the specified comparisation class.

Parameters:
swoThe comparisation functor class.

Definition at line 620 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
void BLOCXX_NAMESPACE::List< T >::splice ( iterator  position,
List< T > &  x,
iterator  i 
) [inline]

Move the specified element from list x pointed to by iterator i into the current list at the given position.

Parameters:
positionThe iterator pointing to the insert position.
xThe List to insert element from.
iThe element in List x to move.

Definition at line 534 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
void BLOCXX_NAMESPACE::List< T >::splice ( iterator  position,
List< T > &  x 
) [inline]

Move the specified list into the current list at the given position.

Parameters:
positionThe iterator pointing to the insert position.
xThe list to move elements from.

Definition at line 522 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
void BLOCXX_NAMESPACE::List< T >::splice ( iterator  position,
List< T > &  x,
iterator  first,
iterator  last 
) [inline]

Move the elements from list x specified by first and last iterators into the current list at the given position.

Parameters:
positionThe iterator pointing to the insert position.
xThe list to insert element from.
firstThe first element in List x to move.
lastThe last element in List x to move.

Definition at line 547 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
void BLOCXX_NAMESPACE::List< T >::swap ( List< T > &  x) [inline]

Exchanges the elements of the current list with those of another.

Parameters:
xThe another List, this List will exchange its elements with.

Definition at line 270 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl, and BLOCXX_NAMESPACE::COWReference< T >::swap().

Referenced by BLOCXX_NAMESPACE::swap().

template<class T>
void BLOCXX_NAMESPACE::List< T >::unique ( ) [inline]

Remove all duplicate elements from the List.

Definition at line 562 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.

template<class T>
template<class BinaryPredicate >
void BLOCXX_NAMESPACE::List< T >::unique ( BinaryPredicate  bp) [inline]

Remove all elements from the List for which the binary predicate bp is true.

Parameters:
bpThe binary predicate

Definition at line 603 of file List.hpp.

References BLOCXX_NAMESPACE::List< T >::m_impl.


Friends And Related Function Documentation

template<class T>
bool operator< ( const List< T > &  x,
const List< T > &  y 
) [friend]

Determine if one Lists is less than another comparing the size of both lists and all their elements.

Parameters:
xThe first List in the comparison.
xThe second List in the comparison.
Returns:
true if the List x is less than List y.
template<class T>
bool operator== ( const List< T > &  x,
const List< T > &  y 
) [friend]

Determine equality of two Lists comparing the size of both lists and all elements in the same position using the elements "==" operator.

Parameters:
xThe first List in the comparison.
xThe second List in the comparison.
Returns:
true if the Lists are equal.

Member Data Documentation

template<class T>
COWReference<L> BLOCXX_NAMESPACE::List< T >::m_impl [private]

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