Qt 4.8
Public Types | Public Functions | Public Variables | List of all members
QLinkedList< T >::const_iterator Class Reference

The QLinkedList::const_iterator class provides an STL-style const iterator for QLinkedList. More...

#include <qlinkedlist.h>

Public Types

typedef qptrdiff difference_type
 
typedef std::bidirectional_iterator_tag iterator_category
 
typedef const T * pointer
 
typedef const T & reference
 
typedef T value_type
 

Public Functions

 const_iterator ()
 Constructs an uninitialized iterator. More...
 
 const_iterator (Node *n)
 
 const_iterator (const const_iterator &o)
 Constructs a copy of other. More...
 
 const_iterator (iterator ci)
 Constructs a copy of other. More...
 
bool operator!= (const const_iterator &o) const
 Returns true if other points to a different item than this iterator; otherwise returns false. More...
 
const T & operator* () const
 Returns a reference to the current item. More...
 
const_iterator operator+ (int j) const
 Returns an iterator to the item at j positions forward from this iterator. More...
 
const_iteratoroperator++ ()
 The prefix ++ operator (++it) advances the iterator to the next item in the list and returns an iterator to the new current item. More...
 
const_iterator operator++ (int)
 The postfix ++ operator (it++) advances the iterator to the next item in the list and returns an iterator to the previously current item. More...
 
const_iteratoroperator+= (int j)
 Advances the iterator by j items. More...
 
const_iterator operator- (int j) const
 This function returns an iterator to the item at j positions backward from this iterator. More...
 
const_iteratoroperator-- ()
 The prefix – operator (–it) makes the preceding item current and returns an iterator to the new current item. More...
 
const_iterator operator-- (int)
 The postfix – operator (it–) makes the preceding item current and returns an iterator to the previously current item. More...
 
const_iteratoroperator-= (int j)
 Makes the iterator go back by j items. More...
 
const T * operator-> () const
 Returns a pointer to the current item. More...
 
const_iteratoroperator= (const const_iterator &o)
 Assigns other to this iterator. More...
 
bool operator== (const const_iterator &o) const
 Returns true if other points to the same item as this iterator; otherwise returns false. More...
 

Public Variables

Nodei
 

Detailed Description

template<class T>
class QLinkedList< T >::const_iterator

The QLinkedList::const_iterator class provides an STL-style const iterator for QLinkedList.

QLinkedList features both STL-style iterators and Java-style iterators. The STL-style iterators are more low-level and more cumbersome to use; on the other hand, they are slightly faster and, for developers who already know STL, have the advantage of familiarity.

QLinkedList<T>::const_iterator allows you to iterate over a QLinkedList<T>. If you want modify the QLinkedList as you iterate over it, you must use QLinkedList::iterator instead. It is generally good practice to use QLinkedList::const_iterator on a non-const QLinkedList as well, unless you need to change the QLinkedList through the iterator. Const iterators are slightly faster, and can improve code readability.

The default QLinkedList::const_iterator constructor creates an uninitialized iterator. You must initialize it using a function like QLinkedList::constBegin(), QLinkedList::constEnd(), or QLinkedList::insert() before you can start iterating. Here's a typical loop that prints all the items stored in a list:

list.append("January");
list.append("February");
...
list.append("December");
for (i = list.constBegin(); i != list.constEnd(); ++i)
cout << *i << endl;

STL-style iterators can be used as arguments to generic algorithms. For example, here's how to find an item in the list using the qFind() algorithm:

...
list.constEnd(), "Joel");
if (it != list.constEnd())
cout << "Found Joel" << endl;

Multiple iterators can be used on the same list. If you add items to the list, existing iterators will remain valid. If you remove items from the list, iterators that point to the removed items will become dangling iterators.

See also
QLinkedList::iterator, QLinkedListIterator

Definition at line 151 of file qlinkedlist.h.

Typedefs

◆ difference_type

Warning
This function is not part of the public interface.

Definition at line 155 of file qlinkedlist.h.

◆ iterator_category

Warning
This function is not part of the public interface.

Definition at line 154 of file qlinkedlist.h.

◆ pointer

template<class T>
QLinkedList< T >::const_iterator::pointer
Warning
This function is not part of the public interface.

Definition at line 157 of file qlinkedlist.h.

◆ reference

template<class T>
QLinkedList< T >::const_iterator::reference
Warning
This function is not part of the public interface.

Definition at line 158 of file qlinkedlist.h.

◆ value_type

template<class T>
QLinkedList< T >::const_iterator::value_type
Warning
This function is not part of the public interface.

Definition at line 156 of file qlinkedlist.h.

Constructors and Destructors

◆ const_iterator() [1/4]

template<class T>
QLinkedList< T >::const_iterator::const_iterator ( )
inline

Constructs an uninitialized iterator.

Functions like operator*() and operator++() should not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.

See also
QLinkedList::constBegin() QLinkedList::constEnd()

Definition at line 160 of file qlinkedlist.h.

160 : i(0) {}

◆ const_iterator() [2/4]

template<class T>
QLinkedList< T >::const_iterator::const_iterator ( Node node)
inline
Warning
This function is not part of the public interface.

Definition at line 161 of file qlinkedlist.h.

161 : i(n) {}

◆ const_iterator() [3/4]

template<class T>
QLinkedList< T >::const_iterator::const_iterator ( const const_iterator o)
inline

Constructs a copy of other.

Definition at line 162 of file qlinkedlist.h.

162 : i(o.i){}

◆ const_iterator() [4/4]

template<class T>
QLinkedList< T >::const_iterator::const_iterator ( iterator  ci)
inline

Constructs a copy of other.

Definition at line 163 of file qlinkedlist.h.

163 : i(ci.i){}

Functions

◆ operator!=()

template<class T>
bool QLinkedList< T >::const_iterator::operator!= ( const const_iterator other) const
inline

Returns true if other points to a different item than this iterator; otherwise returns false.

See also
operator==()

Definition at line 168 of file qlinkedlist.h.

168 { return i != o.i; }

◆ operator*()

template<class T>
const T & QLinkedList< T >::const_iterator::operator* ( ) const
inline

Returns a reference to the current item.

See also
operator->()

Definition at line 165 of file qlinkedlist.h.

165 { return i->t; }

◆ operator+()

template<class T>
QLinkedList::const_iterator QLinkedList< T >::const_iterator::operator+ ( int  j) const
inline

Returns an iterator to the item at j positions forward from this iterator.

(If j is negative, the iterator goes backward.)

This operation can be slow for large j values.

See also
operator-()

Definition at line 173 of file qlinkedlist.h.

174  { Node *n = i; if (j > 0) while (j--) n = n->n; else while (j++) n = n->p; return n; }

◆ operator++() [1/2]

template<class T>
QLinkedList::const_iterator & QLinkedList< T >::const_iterator::operator++ ( )
inline

The prefix ++ operator (++it) advances the iterator to the next item in the list and returns an iterator to the new current item.

Calling this function on QLinkedList::constEnd() leads to undefined results.

See also
operator--()

Definition at line 169 of file qlinkedlist.h.

169 { i = i->n; return *this; }
QLinkedListNode * n
Definition: qlinkedlist.h:73

◆ operator++() [2/2]

template<class T>
QLinkedList::const_iterator QLinkedList< T >::const_iterator::operator++ ( int  )
inline

The postfix ++ operator (it++) advances the iterator to the next item in the list and returns an iterator to the previously current item.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 170 of file qlinkedlist.h.

170 { Node *n = i; i = i->n; return n; }
QLinkedListNode * n
Definition: qlinkedlist.h:73

◆ operator+=()

template<class T>
QLinkedList::const_iterator & QLinkedList< T >::const_iterator::operator+= ( int  j)
inline

Advances the iterator by j items.

(If j is negative, the iterator goes backward.)

This operation can be slow for large j values.

See also
operator-=(), operator+()

Definition at line 176 of file qlinkedlist.h.

176 { return *this = *this + j; }

◆ operator-()

template<class T>
QLinkedList::const_iterator QLinkedList< T >::const_iterator::operator- ( int  j) const
inline

This function returns an iterator to the item at j positions backward from this iterator.

(If j is negative, the iterator goes forward.)

This operation can be slow for large j values.

See also
operator+()

Definition at line 175 of file qlinkedlist.h.

175 { return operator+(-j); }
const_iterator operator+(int j) const
Returns an iterator to the item at j positions forward from this iterator.
Definition: qlinkedlist.h:173

◆ operator--() [1/2]

template<class T>
QLinkedList::const_iterator & QLinkedList< T >::const_iterator::operator-- ( )
inline

The prefix – operator (–it) makes the preceding item current and returns an iterator to the new current item.

Calling this function on QLinkedList::begin() leads to undefined results.

See also
operator++()

Definition at line 171 of file qlinkedlist.h.

171 { i = i->p; return *this; }
QLinkedListNode * p
Definition: qlinkedlist.h:73

◆ operator--() [2/2]

template<class T>
QLinkedList::const_iterator QLinkedList< T >::const_iterator::operator-- ( int  )
inline

The postfix – operator (it–) makes the preceding item current and returns an iterator to the previously current item.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 172 of file qlinkedlist.h.

172 { Node *n = i; i = i->p; return n; }
QLinkedListNode * p
Definition: qlinkedlist.h:73

◆ operator-=()

template<class T>
QLinkedList::const_iterator & QLinkedList< T >::const_iterator::operator-= ( int  j)
inline

Makes the iterator go back by j items.

(If j is negative, the iterator goes forward.)

This operation can be slow for large j values.

See also
operator+=(), operator-()

Definition at line 177 of file qlinkedlist.h.

177 { return *this = *this - j; }

◆ operator->()

template<class T>
const T * QLinkedList< T >::const_iterator::operator-> ( ) const
inline

Returns a pointer to the current item.

See also
operator*()

Definition at line 166 of file qlinkedlist.h.

166 { return &i->t; }

◆ operator=()

template<class T>
QLinkedList::const_iterator & QLinkedList< T >::const_iterator::operator= ( const const_iterator o)
inline

Assigns other to this iterator.

Definition at line 164 of file qlinkedlist.h.

164 { i = o.i; return *this; }

◆ operator==()

template<class T>
bool QLinkedList< T >::const_iterator::operator== ( const const_iterator other) const
inline

Returns true if other points to the same item as this iterator; otherwise returns false.

See also
operator!=()

Definition at line 167 of file qlinkedlist.h.

167 { return i == o.i; }

Properties

◆ i

template<class T>
Node* QLinkedList< T >::const_iterator::i

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