返回介绍

QMapIterator Class

发布于 2019-10-04 15:01:29 字数 6134 浏览 1398 评论 0 收藏 0

The QMapIterator class provides an iterator for QMap. More...

#include <qmap.h>

List of all member functions.

Public Members

  • typedef std::bidirectional_iterator_tagiterator_category
  • typedef Tvalue_type
  • typedef T*pointer
  • typedef T&reference
  • QMapIterator ()
  • QMapIterator ( QMapNode<K,T>*p )
  • QMapIterator ( constQMapIterator<K,T>&it )
  • bool operator== ( constQMapIterator<K,T>&it ) const
  • bool operator!= ( constQMapIterator<K,T>&it ) const
  • T & operator* ()
  • const T & operator* () const
  • const K & key () const
  • T & data ()
  • const T & data () const
  • QMapIterator<K, T> & operator++ ()
  • QMapIterator<K, T> operator++ ( int )
  • QMapIterator<K, T> & operator-- ()
  • QMapIterator<K, T> operator-- ( int )

Detailed Description

The QMapIterator class provides an iterator for QMap.

You cannot create an iterator by yourself. Instead, you have to ask a map to give you one. An iterator is as big as a pointer; on 32-bit machines that means 4 bytes, on 64-bit ones 8 bytes. That makes copying them very fast. They resemble the semantics of pointers as much as possible, and they are almost as fast as usual pointers. See the QMap example.

The only way to traverse a map is to use iterators. QMap is highly optimized for performance and memory usage. On the other hand this means that you have to be a bit more careful with what you are doing. QMap does not know about all its iterators, and the iterators don't even know to which map they belong. That makes things fast but a bit dangerous because it is up to you to make sure that the iterators you are using are still valid. QDictIterator will be able to give warnings, whereas QMapIterator may end up in an undefined state.

For every Iterator there is also a ConstIterator. You have to use the ConstIterator to access a QMap in a const environment or if the reference or pointer to the map is itself const. Its semantics are the same, but it returns only const references to the item it points to.

See also QMap, QMapConstIterator, Qt Template Library Classes and Non-GUI Classes.


Member Type Documentation

QMapIterator::iterator_category

The type of iterator category, std::bidirectional_iterator_tag.

QMapIterator::pointer

Pointer to value_type.

QMapIterator::reference

Reference to value_type.

QMapIterator::value_type

The type of value.

Member Function Documentation

QMapIterator::QMapIterator ()

Creates an uninitialized iterator.

QMapIterator::QMapIterator ( QMapNode<K,T>*p )

Constructs an iterator starting at node p.

QMapIterator::QMapIterator ( constQMapIterator<K,T>&it )

Constructs a copy of the iterator, it.

T & QMapIterator::data ()

Returns a reference to the current item.

const T & QMapIterator::data () const

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Returns a const reference to the data of the current item.

const K & QMapIterator::key () const

Returns a const reference to the data of the current key.

bool QMapIterator::operator!= ( constQMapIterator<K,T>&it ) const

Compares the iterator to the it iterator and returns FALSE if they point to the same item; otherwise returns TRUE.

T & QMapIterator::operator* ()

Dereference operator. Returns a reference to the current item. The same as data().

const T & QMapIterator::operator* () const

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Dereference operator. Returns a const reference to the current item. The same as data().

QMapIterator<K,T>& QMapIterator::operator++ ()

Prefix ++ makes the succeeding item current and returns an iterator pointing to the new current item. The iterator cannot check whether it reached the end of the map. Incrementing the iterator returned by end() causes undefined results.

QMapIterator<K,T> QMapIterator::operator++ ( int )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Postfix ++ makes the succeeding item current and returns an iterator pointing to the new current item. The iterator cannot check whether it reached the end of the map. Incrementing the iterator returned by end() causes undefined results.

QMapIterator<K,T>& QMapIterator::operator-- ()

Prefix -- makes the previous item current and returns an iterator pointing to the new current item. The iterator cannot check whether it reached the beginning of the map. Decrementing the iterator returned by begin() causes undefined results.

QMapIterator<K,T> QMapIterator::operator-- ( int )

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Postfix -- makes the previous item current and returns an iterator pointing to the new current item. The iterator cannot check whether it reached the beginning of the map. Decrementing the iterator returned by begin() causes undefined results.

bool QMapIterator::operator== ( constQMapIterator<K,T>&it ) const

Compares the iterator to the it iterator and returns TRUE if they point to the same item; otherwise returns FALSE.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文