const_iterator Class

class QDirListing::const_iterator

このクラスはQt 6.8で導入された。

パブリックタイプ

パブリック関数

QDirListing::const_iterator::reference operator*() const
QDirListing::const_iterator &operator++()
void operator++(int)
QDirListing::const_iterator::pointer operator->() const

詳細説明

QDirListing::cbegin() が返すイテレータ型。

  • これは順方向のみのシングルパスイテレータです (ディレクトリエントリを逆順に反復することはできません)。
  • コピーできない。std::move()d のみ。
  • std::input_iterator をモデル化したオブジェクトに対するポストインクリメントの返り値は、部分的に形成されたもの(その後進められたイテレータのコピー)です。このようなオブジェクトに対する有効な操作は、破棄と新しいイテレータの割り当てだけです。したがって、ポストインクリメント演算子はイテレータを進め、void を返します。
  • ランダムアクセスを許さない
  • 範囲指定ループや、ランダムアクセスのイテレータを必要としない C++20 std::ranges アルゴリズムで使用できます。
  • 有効なイテレータを再参照するとconst DirEntry &
  • (c)end() は、反復処理の終了を示すQDirListing::sentinel を返します。end() と等しい値を比較するイテレータの再参照は、未定義の動作です。

注: 「古典的な」 STL アルゴリズムは反復子/センチネルをサポートしていないため、QDirListing には C++20 std::ranges アルゴリズムを使用するか、C++17 で範囲ベースのアルゴリズムを提供するサードパーティ製ライブラリを使用する必要があります。

QDirListingQDirListing::sentinel 、およびQDirListing::DirEntryも参照してください

メンバ型のドキュメント

[alias] const_iterator::pointer

const QDirListing::DirEntry * に対する typedef 。

[alias] const_iterator::reference

const QDirListing::DirEntry & の typedef 。

メンバ関数ドキュメント

QDirListing::const_iterator::reference const_iterator::operator*() const

このイテレータが指すディレクトリエントリのconst QDirListing::DirEntry & を返す。

QDirListing::const_iterator &const_iterator::operator++()

プリインクリメント演算子。イテレータを進め、その参照を返す。

void const_iterator::operator++(int)

ポストインクリメント演算子。

QDirListing::const_iterator つまり、移動のみ、前進のみ、シングルパスのイテレータであり、ランダムアクセスは許可されません。

std::input_iterator をモデルとするオブジェクトに対する post-increment の返り値は、部分的に形成されたもの(前に進められたイテレータのコピー)です。このようなオブジェクトに対する有効な操作は、破棄と新しいイテレータの割り当てだけです。したがって、ポストインクリメント演算子はイテレータを進め、void を返す。

QDirListing::const_iterator::pointer const_iterator::operator->() const

このイテレータが指すディレクトリ・エントリへのconst QDirListing::DirEntry * を返します。

©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。