Namespaces
Variants
Views
Actions

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

From cppreference.com
< cpp‎ | named req
m (See also: P1754R1)
Line 42: Line 42:
 
===See also===
 
===See also===
 
{{dsc begin}}
 
{{dsc begin}}
{{dsc inc | cpp/iterator/dsc ContiguousIterator}}
+
{{dsc inc | cpp/iterator/dsc contiguous_iterator}}
 
{{see_also_iterator_library}}
 
{{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 23:46, 24 November 2021

 
 
C++ named requirements
 

A LegacyContiguousIterator is a LegacyIterator 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

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.

Notes

Fancy pointer to object types are also required to satisfy LegacyContiguousIterator.

LegacyContiguousIterator is replaced with the contiguous_iterator concept: iterator types in the standard library that are required to satisfy LegacyContiguousIterator in C++17 are required to model contiguous_iterator in C++20.

(since C++20)

See also

specifies that a random_access_iterator is a contiguous iterator, referring to elements that are contiguous in memory
(concept) [edit]
Iterator library provides definitions for iterators, iterator traits, adaptors, and utility functions