Оболочка итератора STL - PullRequest
       13

Оболочка итератора STL

1 голос
/ 14 июня 2011

Я хотел бы написать оболочку для итератора 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; } 
};

Как это можно сделать для всех типов итераторов? Я имею в виду:

  • Итератор ввода
  • Итератор вывода
  • Прямой итератор
  • Двунаправленный итератор
  • Итератор произвольного доступа

Как это возможно?

1 Ответ

4 голосов
/ 14 июня 2011

Взгляните на boost::transform_iterator. Я думаю, это то, к чему ты стремишься.

Исходный код

...