一个典型的前向迭代有望实现以下方法之前转换值:自定义迭代器,其在保存
value_type& operator*();
value_type* operator->();
我写的,其中用户期望看到从表示的value_type
不同的自定义容器的自定义迭代器容器内的值。因此,当向用户返回value_type
值时,我将其从内部表示转换为用户预期的value_type
。在提到的成员中很容易实现。
你能建议如何处理l值吗?我在哪里可以处理value_type
到内部表示的转换,当用户在像*it = value_type(5)
这样的语法中赋值给迭代器时?
我想过要返回一个函数,但是我不喜欢这个想法,因为在调用者方面非常用的语法。
能否请您提供使用这种包装的样本?方法将如何? – flashnik 2010-05-19 09:23:56
您是否有关于界面类型和商店类型的其他信息? – 2010-05-19 09:26:55
只是'value_type'和'stored_type'。它是一个模板参数。通常'stored_type'是'int *'。另外还有一个'Wrapper',其成员为'value_type operator()(strored_type s)'和'stored_type operator()(value_type v)',但是可以添加任何其他类型。 – flashnik 2010-05-19 09:32:46