Difference between revisions of "cpp/named req/ContiguousIterator"
From cppreference.com
(→Notes: note fancy pointers and std::contiguous_iterator) |
m (→See also: ~ {{see_also_iterator_library}}) |
||
Line 43: | Line 43: | ||
{{dsc begin}} | {{dsc begin}} | ||
{{dsc inc | cpp/iterator/dsc ContiguousIterator}} | {{dsc inc | cpp/iterator/dsc ContiguousIterator}} | ||
+ | {{see_also_iterator_library}} | ||
{{dsc end}} | {{dsc end}} | ||
− | |||
{{langlinks|de|es|fr|it|ja|pt|ru|zh}} | {{langlinks|de|es|fr|it|ja|pt|ru|zh}} |
Revision as of 17:14, 15 February 2021
A LegacyContiguousIterator is a LegacyRandomAccessIterator whose logically adjacent elements are also physically adjacent in memory.
A pointer to an element of an array satisfies all requirements of LegacyContiguousIterator.
Contents |
Requirements
The type It
satisfies LegacyContiguousIterator if
- The type
It
satisfies LegacyRandomAccessIterator
And, for every
-
a
, a dereferenceable iterator of typeIt
-
n
, an integral value
such that
- a + n is a valid and dereferenceable iterator value
then
- *(a + n) is equivalent to *(std::addressof(*a) + n).
Standard library
The following standard library types are LegacyContiguousIterators.
- array::iterator.
- basic_string_view::iterator.
- basic_string::iterator.
- vector::iterator for value_type other than bool.
- The return type of begin(valarray) and end(valarray)
Notes
Fancy pointer to object types are also required to satisfy LegacyContiguousIterator.
LegacyContiguousIterator is partially replaced with the |
(since C++20) |
See also
(C++20) |
specifies that a random_access_iterator is a contiguous iterator, referring to elements that are contiguous in memory (concept) |
Iterator library | provides definitions for iterators, iterator traits, adaptors, and utility functions |