STL迭代器包装器

时间:2011-06-14 18:39:06

标签: c++ templates stl iterator wrapper

我想为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; } 
};

如何为所有类型的迭代器制作它?我的意思是:

  • 输入迭代器
  • 输出迭代器
  • Forward Iterator
  • 双向迭代器
  • 随机访问迭代器

怎么可能?

1 个答案:

答案 0 :(得分:4)

看看boost::transform_iterator。我认为这就是你想要达到的目标。

Source code