Namespaces
Variants
Views
Actions

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

From cppreference.com
< cpp‎ | named req
(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}}
* [[cpp/iterator|Iterator library]]
 
  
 
{{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

 
 
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.

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 partially replaced with the contiguous_iterator concept: iterator types in the standard library that are required to satisfy LegacyContiguousIterator in C++17 are also 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