c++ - STL迭代器包装器

标签 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; } 
};

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

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

这怎么可能?

最佳答案

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

Source code

关于c++ - STL迭代器包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6348359/

相关文章:

c++ - 在windows上的qt项目中包含ffmpeg导致程序意外结束

c++ - 如何将Qt中的keyPressEvent传递给基类?

c++ 模板和析构函数问题

c++ - c++模板语法解释

c++ - vector 的结束迭代器内容

android - 我无法停止在Android cocos2dx中播放循环sfx

c++ - 用于 move std::shared_ptr 的函数声明

c++ - 为什么模板化友元函数在类中定义时似乎没有公开?

c++ - 删除一个 vector 中包含在另一个 vector 中的所有元素的优雅方法?

c++ - boost::range 如何使用管道输入在 map 中插入元素