【发布时间】:2010-05-19 08:55:54
【问题描述】:
一个典型的前向迭代器应该实现以下方法:
value_type& operator*();
value_type* operator->();
我正在为自定义容器编写自定义迭代器,用户希望看到value_type 与容器内的值表示不同。因此,当将value_type 值返回给用户时,我将其从内部表示转换为用户预期的value_type。在提到的成员内部很容易实现。
您能建议如何处理左值吗?当用户以 *it = value_type(5) 之类的语法将值分配给迭代器时,我在哪里可以处理 value_type 到内部表示的转换?
我想过返回一个仿函数,但我不喜欢这个想法,因为调用方的语法不寻常。
【问题讨论】: