Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/named req/ContiguousIterator"

From cppreference.com
< cpp‎ | named req
(named req/core)
(n recent drafts contiguous iterators are RandomAccessIterators and model the contiguous_iterator concept. It is not entirely clear if contiguous iterators in C++17 were, but contiguous containers were defined as having RandomAccessIterators.)
Line 2: Line 2:
 
{{cpp/named req/navbar}}
 
{{cpp/named req/navbar}}
  
A {{named req|ContiguousIterator}} is an {{named req|Iterator}} whose logically adjacent elements are also physically adjacent in memory.
+
A {{named req|ContiguousIterator}} is a {{named req|RandomAccessIterator}} whose logically adjacent elements are also physically adjacent in memory.
  
 
A pointer to an element of an array satisfies all requirements of {{named req/core|ContiguousIterator}}.
 
A pointer to an element of an array satisfies all requirements of {{named req/core|ContiguousIterator}}.
Line 9: Line 9:
 
The type {{tt|It}} satisfies {{named req/core|ContiguousIterator}} if
 
The type {{tt|It}} satisfies {{named req/core|ContiguousIterator}} if
  
* The type {{tt|It}} satisfies {{named req|Iterator}}
+
* The type {{tt|It}} satisfies {{named req|RandomAccessIterator}}
  
 
And, for every
 
And, for every

Revision as of 07:16, 15 December 2019

 
 
C++ named requirements
 

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.

Requirements

The type It satisfies LegacyContiguousIterator if

And, for every

  • a, a dereferenceable iterator of type It
  • n, an integral value

such that

  • a + n is a valid and dereferenceable iterator value

then

Standard library

The following standard library types are LegacyContiguousIterators.

See also