Difference between revisions of "cpp/named req/ContiguousIterator"
From cppreference.com
(Created page with "{{cpp/concept/title|ContiguousIterator}} {{cpp/concept/navbar}} A {{tt|ContiguousIterator}} is an {{concept|Iterator}} whose logically adjacent elements are also physically a...") |
m (→Requirements) |
||
Line 17: | Line 17: | ||
* {{tt|n}}, an integral value | * {{tt|n}}, an integral value | ||
− | {{c|a + n}} is valid and results in a dereferenceable iterator of type {{tt|It}}, then {{c|*(a + n)}} is equivalent to {{c|*(std::addressof(*a) + n)}}. | + | If {{c|a + n}} is valid and results in a dereferenceable iterator of type {{tt|It}}, then {{c|*(a + n)}} is equivalent to {{c|*(std::addressof(*a) + n)}}. |
===Standard library=== | ===Standard library=== |
Revision as of 09:43, 29 November 2017
Template:cpp/concept/title Template:cpp/concept/navbar
A ContiguousIterator
is an Template:concept whose logically adjacent elements are also physically adjacent in memory.
A pointer to an element of an array satisfies all requirements of ContiguousIterator
.
Template:cpp/concept/concept note
Requirements
The type It
satisfies ContiguousIterator
if
- The type
It
satisfies Template:concept
And, given
-
a
, a dereferenceable iterator of typeIt
-
n
, an integral value
If a + n is valid and results in a dereferenceable iterator of type It
, then *(a + n) is equivalent to *(std::addressof(*a) + n).
Standard library
The following standard library types are Template:concepts.
- array::iterator.
- basic_string_view::iterator.
- vector::iterator for value_type other than bool.
- The return type of begin(valarray) and end(valarray)