在阅读 C++11 中的 SCARY 迭代器时,我看到:
从编译器的角度来看,这里没有错。然而,从实际的角度来看,列表迭代器和列表分配器之间没有任何语义依赖性。而且,通常对于所有 STL 容器,迭代器仅依赖于(语义上)容器元素类型。
不过有一点我不明白:
迭代器在或应用于它们
时返回reference
和pointer
类型。, ,等是从分配器中的s派生的。operator *
operator->
reference
pointer
difference_type
typedef
但是分配器不一定要定义pointer
为value_type *
(甚至difference_type
是ptrdiff_t
),例如。
在不知道分配器的情况下,迭代器(一个 SCARY 的)如何可能知道要返回的数据类型?