У меня есть изображения, которые мне не принадлежат, со смежными монохромными пикселями, которые в настоящее время я повторяю с немым приращением указателя.
Теперь у меня есть необходимость перебирать 2D-области, поэтому я думаю о лучшем способе создания итераторов, которые бы были эффективными и простыми в написании.
Мне нужен только forward_iterator. Если у меня есть изображение 10x10, и если я хочу перебрать верхнюю левую область 4x3, оно будет перебирать следующие элементы:
0 1 2 3 10 11 12 13 20 21 22 23
У меня есть два варианта:
- напишите это от руки с
boost::iterator_facade
- используйте
boost::range_iterator
, который дает мне итератор для массива, и измените его поведение с помощью boost::iterator_adaptor
Как вы думаете, что является лучшим?