Namespaces
Variants
Views
Actions

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

From cppreference.com
< cpp‎ | named req
(Requirements: fix)
Line 11: Line 11:
 
* The type {{tt|It}} satisfies {{concept|Iterator}}
 
* The type {{tt|It}} satisfies {{concept|Iterator}}
  
And, given
+
And, for every
 
* {{tt|a}}, a dereferenceable iterator of type {{tt|It}}
 
* {{tt|a}}, a dereferenceable iterator of type {{tt|It}}
 
* {{tt|n}}, an integral value
 
* {{tt|n}}, an integral value
  
Then
+
such that
* {{c|a + n}} is valid
+
 
* If {{c|a + n}} results in a dereferenceable iterator of type {{tt|It}}, then {{c|*(a + n)}} is equivalent to {{c|*(std::addressof(*a) + n)}}.
+
* {{c|a + n}} is a valid and dereferenceable iterator value
 +
 
 +
then
 +
 
 +
* {{c|*(a + n)}} is equivalent to {{c|*(std::addressof(*a) + n)}}.
  
 
===Standard library===
 
===Standard library===

Revision as of 18:52, 8 December 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.

Requirements

The type It satisfies ContiguousIterator 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 Template:concepts.

See also