CopperSpice API  1.9.1
QMultiMap< Key, Val, C >::const_iterator Class Reference

STL style const iterator for QMultiMap. More...

Public Typedefs

using iterator_category = std::bidirectional_iterator_tag
 

Public Methods

 const_iterator () = default
 
 const_iterator (iterator iter)
 
const Key & key () const
 
bool operator!= (const_iterator other) const
 
const Val & operator* () const
 
const_iterator operator+ (size_type n) const
 
const_iterator & operator++ ()
 
const_iterator operator++ (int)
 
const_iterator & operator+= (size_type n)
 
const_iterator operator- (size_type n) const
 
const_iterator & operator-- ()
 
const_iterator operator-- (int)
 
const_iterator & operator-= (size_type n)
 
const Val * operator-> () const
 
bool operator== (const_iterator other) const
 
const std::pair< const Key, Val > & pair () const
 
const Val & value () const
 

Friends

bool operator!= (iterator iter1, const_iterator iter2)
 
bool operator== (iterator iter1, const_iterator iter2)
 
class QMultiMap< Key, Val, C >
 

Detailed Description

template<typename Key, typename Val, typename C>
class QMultiMap< Key, Val, C >::const_iterator

The QMultiMap::const_iterator class provides an STL style const iterator for QMultiMap. QMultiMap features both STL style iterators and Java style iterators.

QMultiMap::const_iterator allows you to iterate over a QMultiMap. If you want to modify the QMap as you iterate over it, you must use QMutableMultiMap::iterator instead.

After construction you must initialize the iterator using a method like QMultiMap::constBegin(), QMultiMap::constEnd(), or QMultiMap::find() before you can start iterating. The following is an example of which prints all of the (key, value) pairs in the container.

map.insert("January", 1);
map.insert("February", 2);
...
map.insert("December", 12);
for (auto iter = map.constBegin(); iter != map.constEnd(); ++iter) {
cout << iter.key() << ": " << iter.value() << endl;
}

Unlike QMultiHash which stores its items unordered, QMultiMap stores items ordered by the key. Items which have the same key will appear consecutively, from the most recently to the least recently inserted value.

See also
QMultiMap::iterator

Member Typedef Documentation

template<typename Key , typename Val , typename C >
QMultiMap< Key, Val, C >::const_iterator::iterator_category

A synonym for std::bidirectional_iterator_tag indicating this iterator is a bidirectional iterator.

Constructor & Destructor Documentation

template<typename Key , typename Val , typename C >
QMultiMap< Key, Val, C >::const_iterator::const_iterator ( )
default

Constructs an uninitialized iterator.

Methods like key(), value(), and operator++() must not be called on an uninitialized iterator. Use operator=() to assign a value to it before using it.

See also
QMultiMap::constBegin(), QMultiMap::constEnd()
template<typename Key , typename Val , typename C >
QMultiMap< Key, Val, C >::const_iterator::const_iterator ( iterator  iter)
inline

Constructs a copy of iter.

Method Documentation

template<typename Key , typename Val , typename C >
const Key & QMultiMap< Key, Val, C >::const_iterator::key ( ) const
inline

Returns the current item's key.

See also
value()
template<typename Key , typename Val , typename C >
bool QMultiMap< Key, Val, C >::const_iterator::operator!= ( const_iterator  other) const
inline

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

See also
operator==()
template<typename Key , typename Val , typename C >
const Val & QMultiMap< Key, Val, C >::const_iterator::operator* ( ) const
inline

Returns the current item's value. Equivalent to calling value().

See also
key()
template<typename Key , typename Val , typename C >
const_iterator QMultiMap< Key, Val, C >::const_iterator::operator+ ( size_type  n) const
inline

Returns an iterator to the item at n positions forward from this iterator. If n is negative the iterator goes backward.

This operation can be slow or large values of n.

See also
operator-()
template<typename Key , typename Val , typename C >
const_iterator & QMultiMap< Key, Val, C >::const_iterator::operator++ ( )
inline

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

Calling this method on QMultiMap::end() leads to undefined behavior.

See also
operator--()
template<typename Key , typename Val , typename C >
const_iterator QMultiMap< Key, Val, C >::const_iterator::operator++ ( int  )
inline

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

template<typename Key , typename Val , typename C >
const_iterator & QMultiMap< Key, Val, C >::const_iterator::operator+= ( size_type  n)
inline

Advances the iterator by n items. If n is negative the iterator goes backward.

This operation can be slow for large values of n.

See also
operator-=(), operator+()
template<typename Key , typename Val , typename C >
const_iterator QMultiMap< Key, Val, C >::const_iterator::operator- ( size_type  n) const
inline

Returns an iterator to the item at n positions backward from this iterator. If n is negative the iterator goes forward.

This operation can be slow for large values of n.

See also
operator+()
template<typename Key , typename Val , typename C >
const_iterator & QMultiMap< Key, Val, C >::const_iterator::operator-- ( )
inline

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

Calling this method on QMultiMap::begin() leads to undefined behavior.

See also
operator++()
template<typename Key , typename Val , typename C >
const_iterator QMultiMap< Key, Val, C >::const_iterator::operator-- ( int  )
inline

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

template<typename Key , typename Val , typename C >
const_iterator & QMultiMap< Key, Val, C >::const_iterator::operator-= ( size_type  n)
inline

Makes the iterator go back by n items. If n is negative the iterator goes forward.

This operation can be slow for large values of n.

See also
operator+=(), operator-()
template<typename Key , typename Val , typename C >
const Val * QMultiMap< Key, Val, C >::const_iterator::operator-> ( ) const
inline

Returns a pointer to the current item's value.

See also
value()
template<typename Key , typename Val , typename C >
bool QMultiMap< Key, Val, C >::const_iterator::operator== ( const_iterator  other) const
inline

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

See also
operator!=()
template<typename Key , typename Val , typename C >
const std::pair< const Key, Val > & QMultiMap< Key, Val, C >::const_iterator::pair ( ) const
inline

Returns the current item's key and value as a pair.

template<typename Key , typename Val , typename C >
const Val & QMultiMap< Key, Val, C >::const_iterator::value ( ) const
inline

Returns the current item's value.

See also
key(), operator*()

Friends And Related Function Documentation

template<typename Key , typename Val , typename C >
bool operator!= ( iterator  iter1,
const_iterator  iter2 
)
friend

Returns true if iter1 points to a different item than iter2, otherwise it returns false.

template<typename Key , typename Val , typename C >
bool operator== ( iterator  iter1,
const_iterator  iter2 
)
friend

Returns true if iter1 points to the same item as iter2, otherwise it returns false.