C++ 命名要求: 传统连续迭代器 (自 C++17 起)
来自 cppreference.cn
传统连续迭代器 是一种 传统迭代器,其逻辑上相邻的元素在内存中也是物理上相邻的。
指向数组元素的指针满足传统连续迭代器的所有要求。
目录 |
[编辑] 要求
类型 It 满足传统连续迭代器,如果
- 类型 It 满足传统迭代器
并且,对于每个
- a,类型 It 的可解引用迭代器
- n,一个整型值
使得
- a + n 是一个有效且可解引用的迭代器值
则
- *(a + n) 等价于 *(std::addressof(*a) + n)。
[编辑] 标准库
以下标准库类型是传统连续迭代器。
- array::iterator.
- basic_string_view::iterator.
- basic_string::iterator.
- vector::iterator 对于
value_type
不是 bool 的情况。 - begin(valarray) 和 end(valarray) 的返回类型。
[编辑] 注释
Fancy 指针 到对象类型也需要满足传统连续迭代器。
传统连续迭代器被 |
(自 C++20 起) |
[编辑] 参见
(C++20) |
指定 random_access_iterator 是一个连续迭代器,指向内存中连续的元素(概念) |
迭代器库 | 提供迭代器、迭代器 traits、适配器和实用函数的定义 |