- Qt 6.9
- Qt Core
- C++ Classes
- const_iterator
- Qt 6.9.3 Reference Documentation

# QDirListing::const_iterator Class

class QDirListing::const_iterator

This class was introduced in Qt 6.8.

- List of all members, including inherited members
- const_iterator is part of Input/Output and Networking.

## Public Types

| pointer
| reference

## Public Functions

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

## Detailed Description

The iterator type returned by QDirListing::cbegin().

- This is a forward-only, single-pass iterator (you cannot iterate directory entries in reverse order)
- Can't be copied, only `std::move()`d.
- The return value of post-increment on objects that model `std::input_iterator` is partially-formed (a copy of an iterator that has since been advanced), the only valid operations on such an object are destruction and assignment of a new iterator. Therefore the post-increment operator advances the iterator and returns `void`.
- Doesn't allow random access
- Can be used in ranged-for loops; or with C++20 std::ranges algorithms that don't require random access iterators
- Dereferencing a valid iterator returns a `const DirEntry &`
- (c)end() returns a QDirListing::sentinel that signals the end of the iteration. Dereferencing an iterator that compares equal to end() is undefined behavior

Note: The "classical" STL algorithms don't support iterator/sentinel, so you need to use C++20 std::ranges algorithms for QDirListing, or else a 3rd-party library that provides range-based algorithms in C++17.

See also QDirListing, QDirListing::sentinel, and QDirListing::DirEntry.

## Member Type Documentation

### `[alias]` const_iterator::pointer

A typedef for `const QDirListing::DirEntry *`.

### `[alias]` const_iterator::reference

A typedef for `const QDirListing::DirEntry &`.

## Member Function Documentation

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

Returns a `const QDirListing::DirEntry &` of the directory entry this iterator points to.

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

Pre-increment operator. Advances the iterator and returns a reference to it.

### void const_iterator::operator++(int)

Post-increment operator.

QDirListing::const_iterator models C++20 std::input_iterator, that is, it is a move-only, forward-only, single-pass iterator, that doesn't allow random access.

The return value of post-increment on objects that model `std::input_iterator` is partially-formed (a copy of an iterator that has since been advanced), the only valid operations on such an object are destruction and assignment of a new iterator. Therefore the post-increment operator advances the iterator and returns `void`.

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

Returns a `const QDirListing::DirEntry *` to the directory entry this iterator points to.