const_iterator Class
class QLinkedList::const_iteratorQLinkedList::const_iterator クラスは、QLinkedList 用の STL スタイルの const イテレータを提供します。さらに...
パブリック関数
const_iterator() | |
const_iterator(QLinkedList<T>::iterator other) | |
bool | operator!=(const QLinkedList<T>::const_iterator &other) const |
const T & | operator*() const |
QLinkedList<T>::const_iterator | operator+(int j) const |
QLinkedList<T>::const_iterator & | operator++() |
QLinkedList<T>::const_iterator | operator++(int) |
QLinkedList<T>::const_iterator & | operator+=(int j) |
QLinkedList<T>::const_iterator | operator-(int j) const |
QLinkedList<T>::const_iterator & | operator--() |
QLinkedList<T>::const_iterator | operator--(int) |
QLinkedList<T>::const_iterator & | operator-=(int j) |
const T * | operator->() const |
bool | operator==(const QLinkedList<T>::const_iterator &other) const |
詳細説明
QLinkedList には、STLスタイルのイテレータと Javaスタイルのイテレータの両方が用意されている。STLスタイルのイテレータは、より低レベルで使い方が面倒ですが、その反面、若干高速で、すでにSTLを知っている開発者にとっては親しみやすいという利点があります。
QLinkedList<T>::const_iterator を使うと、QLinkedList<T> を反復処理できます。QLinkedList を繰り返しながら変更したい場合は、代わりにQLinkedList::iterator を使用する必要があります。イテレータを通してQLinkedList を変更する必要がない限り、QLinkedList にQLinkedList::const_iterator を使用するのが一般的です。constイテレータの方が若干高速で、コードの可読性も向上します。
デフォルトの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スタイルのイテレータは、generic algorithms の引数として使用できます。例えば、リスト内の項目を見つける方法です:
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)
これはオーバーロードされた関数です。
postfix ++ 演算子 (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)
これはオーバーロードされた関数です。
postfix - 演算子 (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 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。