Именованные требования C++: LegacyContiguousIterator (начиная с C++17)
LegacyContiguousIterator — это LegacyIterator, логически смежные элементы которого также физически расположены в памяти рядом.
Указатель на элемент массива удовлетворяет всем требованиям LegacyContiguousIterator.
Требования
Тип It удовлетворяет требованиям LegacyContiguousIterator, если
- тип
Itудовлетворяет требованиям LegacyIterator
и для любых
-
a— разыменовываемый итератор типаIt -
n— целочисленное значение
таких, что
-
a + nявляется допустимым и разыменовываемым значением итератора
тогда
-
*(a + n)эквивалентно*(std::addressof(*a) + n).
Стандартная библиотека
Следующие типы стандартной библиотеки являются LegacyContiguousIterators.
-
array::iteratorиarray::const_iterator. -
basic_string_view::iterator. -
basic_string::iteratorиbasic_string::const_iterator. -
vector::iteratorиvector::const_iteratorдляvalue_type, отличных отbool. -
valarray::iteratorиvalarray::const_iterator.
Примечания
Fancy pointer на типы объектов также должны удовлетворять требованиям LegacyContiguousIterator.
| LegacyContiguousIterator заменён концептом | (начиная с C++20) |
См. также
|
(C++20) | задаёт, что random_access_iterator является непрерывным итератором, ссылающимся на элементы, расположенные в памяти рядом (концепт) |
| Библиотека итераторов | предоставляет определения итераторов, характеристик итераторов, адаптеров и вспомогательных функций |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/named_req/ContiguousIterator