C++ 具名要求:遗留连续迭代器 (LegacyContiguousIterator)
遗留连续迭代器 (LegacyContiguousIterator) 是遗留迭代器 (LegacyIterator) ,其所指向的逻辑相邻元素也在内存中物理上相邻。
指向数组元素的指针满足遗留连续迭代器 (LegacyContiguousIterator) 的所有要求。
要求
以下情况下,类型 It
满足遗留连续迭代器 (LegacyContiguousIterator)
- 类型
It
满足遗留迭代器 (LegacyIterator)
并且,对于每个
-
a
,为It
类型的可解引用迭代器 -
n
,为整型值
使得
- a + n 为有效的可解引用迭代器值
则
- *(a + n) 等价于 *(std::addressof(*a) + n)。
标准库
下列标准库类型是遗留连续迭代器 (LegacyContiguousIterator) 。
- array::iterator。
- basic_string_view::iterator。
- basic_string::iterator。
- vector::iterator,对于除 bool 以外的 value_type。
- begin(valarray) 和 end(valarray) 的返回类型。
注解
亦要求指向对象类型的缀饰指针满足遗留连续迭代器 (LegacyContiguousIterator) 。
遗留连续迭代器 (LegacyContiguousIterator) 被 contiguous_iterator 概念部分代替:标准库中在 C++17 中被要求满足遗留连续迭代器 (LegacyContiguousIterator) 的迭代器类型在 C++20 中亦被要求实现 |
(C++20 起) |
参阅
(C++20) |
指定 random_access_iterator 为连续迭代器,指代内存中连续相接的元素 (概念) |