const_iterator 类
class QLinkedList::const_iteratorQLinkedList::const_iterator 类提供了为 QLinkedList 提供的 STL 风格 const 迭代器。更多...
公共函数
const_iterator() | |
const_iterator(QLinkedList | |
bool | operator!=(const QLinkedList |
const T & | operator*() const |
QLinkedList | operator+(int j) const |
QLinkedList | operator++() |
QLinkedList | operator++(int) |
QLinkedList | operator+=(int j) |
QLinkedList | operator-(int j) const |
QLinkedList | operator--() |
QLinkedList | operator--(int) |
QLinkedList | operator-=(int j) |
const T * | operator->() const |
bool | operator==(const QLinkedList |
详细描述
QLinkedList 既有 STL 风格的迭代器,又有 Java 风格的迭代器。《STL 风格的迭代器》更底层,使用起来更繁琐;但它们稍微快一些,并且对于已经熟悉 STL 的开发者来说,具有熟悉性的优势。
QLinkedList::const_iterator 允许您迭代一个 QLinkedList
默认的QLinkedList::const_iterator 构造函数创建一个未初始化的迭代器。在使用它进行迭代之前,您必须使用QLinkedList::constBegin(),QLinkedList::constEnd或QLinkedList::insert()等函数对其进行初始化。下面是一个典型的循环,用于打印列表中存储的所有项目
QLinkedList<QString> list; list.append("January"); list.append("February"); ... list.append("December"); QLinkedList<QString>::const_iterator i; for (i = list.constBegin(); i != list.constEnd(); ++i) cout << *i << Qt::endl;
STL风格迭代器可以用作通用算法的参数。例如,以下是如何在列表中查找项目的方法
QLinkedList<QString> list; ... QLinkedList<QString>::const_iterator it = std::find(list.constBegin(), list.constEnd(), "Joel"); if (it != list.constEnd()) cout << "Found Joel" << Qt::endl;
可以在同一个列表上使用多个迭代器。如果您向列表中添加项目,现有迭代器将保持有效。如果您从列表中删除项目,指向已删除项目的迭代器将变成悬空迭代器。
警告:在隐式共享容器上的迭代器不与STL迭代器完全相同。在迭代器在该容器上激活时,请避免复制容器。有关更多信息,请参阅隐式共享迭代器问题。
另请参阅QLinkedList::iterator 和 QLinkedListIterator。
成员函数文档
const_iterator::const_iterator()
创建一个未初始化的迭代器。
在没有初始化迭代器的情况下,不应调用如operator*()和operator++()这样的函数。在使用之前,应使用operator=()为其赋值。
另请参阅QLinkedList::constBegin() 和 QLinkedList::constEnd。
const_iterator::const_iterator(QLinkedList<T>::iterator other)
创建other的副本。
bool const_iterator::operator!=(const QLinkedList<T>::const_iterator &other) const
如果other指向与该迭代器不同的项目则返回true
;否则返回false
。
另请参阅operator==。
const T &const_iterator::operator*() const
返回对当前项目的引用。
另请参阅operator->。
QLinkedList<T>::const_iterator const_iterator::operator+(int j) const
返回一个迭代器,该迭代器指向此迭代器前方第j个位置的项目(如果j为负值,迭代器向后移动)。
对于大的j值,此操作可能很慢。
另请参阅operator-。
QLinkedList<T>::const_iterator &const_iterator::operator++()
前缀++运算符(++it
)将迭代器向前移动到列表中的下一个项目,并返回对新当前项目的迭代器。
在QLinkedList<T>::constEnd()上调用此函数会导致未定义的结果。
另请参阅operator--。
QLinkedList<T>::const_iterator const_iterator::operator++(int)
这是一个重载函数。
后缀 ++ 操作符(it++
)将迭代器移动到列表中的下一个项目,并返回对先前当前项的迭代器。
QLinkedList<T>::const_iterator &const_iterator::operator+=(int j)
将迭代器向前移动 j 个项目。(如果 j 为负数,则迭代器向后移动。)
对于大的j值,此操作可能很慢。
另请参阅 operator-=() 和 operator+()。
QLinkedList<T>::const_iterator const_iterator::operator-(int j) const
此函数返回一个迭代器,它指向从本迭代器反向 j 个位置的项目。(如果 j 为负数,则迭代器向前移动。)
对于大的j值,此操作可能很慢。
另请参阅 operator+()。
QLinkedList<T>::const_iterator &const_iterator::operator--()
前缀 – 操作符(--it
)使之前的项目成为当前项目,并返回对新当前项目的迭代器。
在 QLinkedList::begin() 上调用此函数会导致未定义的结果。
另请参阅 operator++()。
QLinkedList<T>::const_iterator const_iterator::operator--(int)
这是一个重载函数。
后缀 – 操作符(it--
)使之前的项目成为当前项目,并返回对先前当前项的迭代器。
QLinkedList<T>::const_iterator &const_iterator::operator-=(int j)
使迭代器向后移动 j 个项目。(如果 j 为负数,则迭代器向前移动。)
对于大的j值,此操作可能很慢。
另请参阅 operator+=() 和 operator-()。
const T *const_iterator::operator->() const
返回当前项的指针。
另请参阅 operator*()。
bool const_iterator::operator==(const QLinkedList<T>::const_iterator &other) const
如果 other 指向与该迭代器相同的项,则返回 true
;否则返回 false
。
另请参阅 operator!=()。
© 2024 Qt公司有限公司。本文档中的文档贡献是各自所有者的版权。此处提供的文档根据自由软件基金会发布的《GNU自由文档许可证第1.3版》的条款进行许可。Qt及其标志是芬兰和/或其他国家的Qt公司有限公司的商标。所有其他商标均为其各自所有者的财产。