【发布时间】:2011-07-23 10:47:42
【问题描述】:
C++ 标准 (2003) 的第 24.1/5 节内容如下:
就像一个指向数组的常规指针 保证有一个指针 指向最后一个元素的值 数组的,所以对于任何迭代器类型 有一个迭代器值指向 过去 a 的最后一个元素 对应的容器。这些值 被称为过去的值。价值观 迭代器 i 的 表达式 *i 被定义被调用 可取消引用。图书馆从不 假设过去的值是 可取消引用。 迭代器也可以 具有不存在的奇异值 与任何容器相关联。 [示例:在声明一个 未初始化的指针 x(与 int* 一样) x;), x 必须总是假设有 一个指针的奇异值。] 大多数表达式的结果是 奇异值未定义;这 唯一的例外是分配 a 迭代器的非奇异值 持有奇异值。在这种情况下 奇异值被覆盖 与任何其他值相同。 可取消引用的值总是 非单数。
我无法真正理解 粗体 中显示的文字?
- 什么是奇异值和非奇异值?它们是如何定义的?在哪里?
- 如何以及为什么可取消引用的值总是非奇异的?
【问题讨论】:
标签: c++ pointers stl iterator standards