Miam-Player  0.8.0
A nice music player
TagLib::List< T > Class Template Reference

A generic, implicitly shared list. More...

#include <tlist.h>

Public Types

typedef std::list< T >::iterator Iterator
 
typedef std::list< T >::const_iterator ConstIterator
 

Public Member Functions

 List ()
 Constructs an empty list. More...
 
 List (const List< T > &l)
 Make a shallow, implicitly shared, copy of l. More...
 
virtual ~List ()
 Destroys this List instance. More...
 
Iterator begin ()
 Returns an STL style iterator to the beginning of the list. More...
 
ConstIterator begin () const
 Returns an STL style constant iterator to the beginning of the list. More...
 
Iterator end ()
 Returns an STL style iterator to the end of the list. More...
 
ConstIterator end () const
 Returns an STL style constant iterator to the end of the list. More...
 
Iterator insert (Iterator it, const T &value)
 Inserts a copy of value before it. More...
 
List< T > & sortedInsert (const T &value, bool unique=false)
 Inserts the value into the list. More...
 
List< T > & append (const T &item)
 Appends item to the end of the list and returns a reference to the list. More...
 
List< T > & append (const List< T > &l)
 Appends all of the values in l to the end of the list and returns a reference to the list. More...
 
List< T > & prepend (const T &item)
 Prepends item to the beginning list and returns a reference to the list. More...
 
List< T > & prepend (const List< T > &l)
 Prepends all of the items in l to the beginning list and returns a reference to the list. More...
 
List< T > & clear ()
 Clears the list. More...
 
unsigned int size () const
 Returns the number of elements in the list. More...
 
bool isEmpty () const
 Returns whether or not the list is empty. More...
 
Iterator find (const T &value)
 Find the first occurrence of value. More...
 
ConstIterator find (const T &value) const
 Find the first occurrence of value. More...
 
bool contains (const T &value) const
 Returns true if the list contains value. More...
 
Iterator erase (Iterator it)
 Erase the item at it from the list. More...
 
const T & front () const
 Returns a reference to the first item in the list. More...
 
T & front ()
 Returns a reference to the first item in the list. More...
 
const T & back () const
 Returns a reference to the last item in the list. More...
 
T & back ()
 Returns a reference to the last item in the list. More...
 
void setAutoDelete (bool autoDelete)
 Auto delete the members of the list when the last reference to the list passes out of scope. More...
 
T & operator[] (unsigned int i)
 Returns a reference to item i in the list. More...
 
const T & operator[] (unsigned int i) const
 Returns a const reference to item i in the list. More...
 
List< T > & operator= (const List< T > &l)
 Make a shallow, implicitly shared, copy of l. More...
 
bool operator== (const List< T > &l) const
 Compares this list with l and returns true if all of the elements are the same. More...
 
bool operator!= (const List< T > &l) const
 Compares this list with l and returns true if the lists differ. More...
 

Protected Member Functions

void detach ()
 

Detailed Description

template<class T>
class TagLib::List< T >

A generic, implicitly shared list.

This is basic generic list that's somewhere between a std::list and a QValueList. This class is implicitly shared. For example:

TagLib::List<int> l = someOtherIntList;

The above example is very cheap. This also makes lists suitable for the return types of functions. The above example will just copy a pointer rather than copying the data in the list. When your shared list's data changes, only then will the data be copied.

Member Typedef Documentation

template<class T>
typedef std::list<T>::const_iterator TagLib::List< T >::ConstIterator
template<class T>
typedef std::list<T>::iterator TagLib::List< T >::Iterator

Constructor & Destructor Documentation

template<class T>
TagLib::List< T >::List ( )

Constructs an empty list.

template<class T>
TagLib::List< T >::List ( const List< T > &  l)

Make a shallow, implicitly shared, copy of l.

Because this is implicitly shared, this method is lightweight and suitable for pass-by-value usage.

template<class T>
virtual TagLib::List< T >::~List ( )
virtual

Destroys this List instance.

If auto deletion is enabled and this list contains a pointer type all of the members are also deleted.

Member Function Documentation

template<class T>
List<T>& TagLib::List< T >::append ( const T &  item)

Appends item to the end of the list and returns a reference to the list.

template<class T>
List<T>& TagLib::List< T >::append ( const List< T > &  l)

Appends all of the values in l to the end of the list and returns a reference to the list.

template<class T>
const T& TagLib::List< T >::back ( ) const

Returns a reference to the last item in the list.

template<class T>
T& TagLib::List< T >::back ( )

Returns a reference to the last item in the list.

template<class T>
Iterator TagLib::List< T >::begin ( )

Returns an STL style iterator to the beginning of the list.

See std::list::const_iterator for the semantics.

template<class T>
ConstIterator TagLib::List< T >::begin ( ) const

Returns an STL style constant iterator to the beginning of the list.

See std::list::iterator for the semantics.

template<class T>
List<T>& TagLib::List< T >::clear ( )

Clears the list.

If auto deletion is enabled and this list contains a pointer type the members are also deleted.

See also
setAutoDelete()
template<class T>
bool TagLib::List< T >::contains ( const T &  value) const

Returns true if the list contains value.

template<class T>
void TagLib::List< T >::detach ( )
protected
template<class T>
Iterator TagLib::List< T >::end ( )

Returns an STL style iterator to the end of the list.

See std::list::iterator for the semantics.

template<class T>
ConstIterator TagLib::List< T >::end ( ) const

Returns an STL style constant iterator to the end of the list.

See std::list::const_iterator for the semantics.

template<class T>
Iterator TagLib::List< T >::erase ( Iterator  it)

Erase the item at it from the list.

template<class T>
Iterator TagLib::List< T >::find ( const T &  value)

Find the first occurrence of value.

template<class T>
ConstIterator TagLib::List< T >::find ( const T &  value) const

Find the first occurrence of value.

template<class T>
const T& TagLib::List< T >::front ( ) const

Returns a reference to the first item in the list.

template<class T>
T& TagLib::List< T >::front ( )

Returns a reference to the first item in the list.

template<class T>
Iterator TagLib::List< T >::insert ( Iterator  it,
const T &  value 
)

Inserts a copy of value before it.

template<class T>
bool TagLib::List< T >::isEmpty ( ) const

Returns whether or not the list is empty.

See also
size()
template<class T>
bool TagLib::List< T >::operator!= ( const List< T > &  l) const

Compares this list with l and returns true if the lists differ.

template<class T>
List<T>& TagLib::List< T >::operator= ( const List< T > &  l)

Make a shallow, implicitly shared, copy of l.

Because this is implicitly shared, this method is lightweight and suitable for pass-by-value usage.

template<class T>
bool TagLib::List< T >::operator== ( const List< T > &  l) const

Compares this list with l and returns true if all of the elements are the same.

template<class T>
T& TagLib::List< T >::operator[] ( unsigned int  i)

Returns a reference to item i in the list.

Warning
This method is slow. Use iterators to loop through the list.
template<class T>
const T& TagLib::List< T >::operator[] ( unsigned int  i) const

Returns a const reference to item i in the list.

Warning
This method is slow. Use iterators to loop through the list.
template<class T>
List<T>& TagLib::List< T >::prepend ( const T &  item)

Prepends item to the beginning list and returns a reference to the list.

template<class T>
List<T>& TagLib::List< T >::prepend ( const List< T > &  l)

Prepends all of the items in l to the beginning list and returns a reference to the list.

template<class T>
void TagLib::List< T >::setAutoDelete ( bool  autoDelete)

Auto delete the members of the list when the last reference to the list passes out of scope.

This will have no effect on lists which do not contain a pointer type.

Note
This relies on partial template instantiation – most modern C++ compilers should now support this.
template<class T>
unsigned int TagLib::List< T >::size ( ) const

Returns the number of elements in the list.

See also
isEmpty()
template<class T>
List<T>& TagLib::List< T >::sortedInsert ( const T &  value,
bool  unique = false 
)

Inserts the value into the list.

This assumes that the list is currently sorted. If unique is true then the value will not be inserted if it is already in the list.


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