[#absl-Cord-ChunkIterator] = xref:absl.adoc[absl]::xref:absl/Cord.adoc[Cord]::ChunkIterator :relfileprefix: ../../ :mrdocs: Iterates over the constituent chunks of a `Cord`. == Synopsis Declared in `<absl/strings/cord.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class ChunkIterator; ---- == Description A `Cord::ChunkIterator` allows iteration over the constituent chunks of its Cord. Such iteration allows you to perform non‐const operations on the data of a Cord without modifying it. Generally, you do not instantiate a `Cord::ChunkIterator` directly; instead, you create one implicitly through use of the `Cord::Chunks()` member function. The `Cord::ChunkIterator` has the following properties: * The iterator is invalidated after any non‐const operation on the Cord object over which it iterates. * The `string_view` returned by dereferencing a valid, non‐`end()` iterator is guaranteed to be non‐empty. * Two `ChunkIterator` objects can be compared equal if and only if they remain valid and iterate over the same Cord. * The iterator in this case is a proxy iterator; the `string_view` returned by the iterator does not live inside the Cord, and its lifetime is limited to the lifetime of the iterator itself. To help prevent lifetime issues, `ChunkIterator::reference` is not a true reference type and is equivalent to `value_type`. * The iterator keeps state that can grow for Cords that contain many nodes and are imbalanced due to sharing. Prefer to pass this type by const reference instead of by value. == Type Aliases [cols="1,4"] |=== | Name| Description | xref:absl/Cord/ChunkIterator/difference_type.adoc[`difference_type`] | The type used to represent distances between iterators. | xref:absl/Cord/ChunkIterator/iterator_category.adoc[`iterator_category`] | The iterator category tag (input iterator). | xref:absl/Cord/ChunkIterator/pointer.adoc[`pointer`] | The pointer type for the iterated values. | xref:absl/Cord/ChunkIterator/reference.adoc[`reference`] | The reference type for the iterated values. | xref:absl/Cord/ChunkIterator/value_type.adoc[`value_type`] | The type of the values iterated over. |=== == Member Functions [cols="1,4"] |=== | Name| Description | xref:absl/Cord/ChunkIterator/2constructor.adoc[`ChunkIterator`] [.small]#[constructor]# | Constructs an iterator in the end / singular state. | xref:absl/Cord/ChunkIterator/operator_star.adoc[`operator*`] | Dereferences the iterator. | xref:absl/Cord/ChunkIterator/operator_inc-07.adoc[`operator++`] | Advances the iterator to the next chunk. | xref:absl/Cord/ChunkIterator/operator_ptr.adoc[`operator‐>`] | Member‐access dereference of the iterator. | xref:absl/Cord/ChunkIterator/operator_eq.adoc[`operator==`] | Compares two iterators for equality. | xref:absl/Cord/ChunkIterator/operator_not_eq.adoc[`operator!=`] | Compares two iterators for inequality. |=== == Friends [cols="1,4"] |=== | Name| Description | `xref:absl/Cord/CharIterator.adoc[absl::Cord::CharIterator]` | Iterates over the constituent characters of a `Cord`. | `xref:absl/Cord.adoc[absl::Cord]` | A sequence of characters stored as a tree of buffers. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#