【发布时间】:2011-06-14 18:39:05
【问题描述】:
我想为 STL 迭代器编写包装器。 它应该只改变某些方法的行为...
我是这样看的:
template<***>
class custom_iterator : public ***
{
T & iter;
public:
custom_iterator(T & iter) : iter(iter) {}
// for example, behaviour that increments value
T_val operator * () { return (*iter)+1; }
};
如何为所有类型的迭代器制作它?我的意思是:
- 输入迭代器
- 输出迭代器
- 前向迭代器
- 双向迭代器
- 随机访问迭代器
这怎么可能?
【问题讨论】:
-
这应该达到什么目的?您不能像 STL 算法那样在迭代器类型上模板化您的应用程序吗?然后,如果需要,您可以使用迭代器特征来访问迭代器的细节......
-
这不是问题。 OP应该首先学会提问。
-
Nawaz,为什么不是问题?我找不到如何制作“STL 迭代器包装器”。包装器我的意思是模式包装器,遵循接口和委托调用。什么是 OP?
-
@Nawaz:我在文本中检测到至少一个问号,这似乎表明这是一个问题。可能不是最好的,因为它缺少要解决的问题,但并不比 SO 中的许多其他问题差...
-
@David:让我重新表述一下我的评论:这不是一个有意义的问题。 OP 应该首先学会提出有意义的问题。
标签: c++ templates stl iterator wrapper