[iterators.general]

# 24 Iterators library [[iterators]](./#iterators)

## 24.1 General [iterators.general]

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iterators.tex#L6)

This Clause describes components that C++ programs may use to perform
iterations over containers ([[containers]](containers "23 Containers library")),
streams ([[iostream.format]](iostream.format "31.7 Formatting and manipulators")),
stream buffers ([[stream.buffers]](stream.buffers "31.6 Stream buffers")),
and other ranges ([[ranges]](ranges "25 Ranges library"))[.](#1.sentence-1)

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iterators.tex#L13)

The following subclauses describe
iterator requirements, and
components for
iterator primitives,
predefined iterators,
and stream iterators,
as summarized in Table [76](#tab:iterators.summary "Table 76: Iterators library summary")[.](#2.sentence-1)

Table [76](#tab:iterators.summary) — Iterators library summary [[tab:iterators.summary]](./tab:iterators.summary)  

| [ð](#tab:iterators.summary-row-1) | **Subclause** | **Header** |
| --- | --- | --- |
| [ð](#tab:iterators.summary-row-2)<br>[[iterator.requirements]](iterator.requirements "24.3 Iterator requirements") | Iterator requirements | <iterator> |
| [ð](#tab:iterators.summary-row-3)<br>[[iterator.primitives]](iterator.primitives "24.4 Iterator primitives") | Iterator primitives |  |
| [ð](#tab:iterators.summary-row-4)<br>[[predef.iterators]](predef.iterators "24.5 Iterator adaptors") | Iterator adaptors |  |
| [ð](#tab:iterators.summary-row-5)<br>[[stream.iterators]](stream.iterators "24.6 Stream iterators") | Stream iterators |  |
| [ð](#tab:iterators.summary-row-6)<br>[[iterator.range]](iterator.range "24.7 Range access") | Range access |  |
