
On 10-02-2013 14:10, Ian Hobson wrote:
Hi,
Is there any interest in a version of for_each that operates on each adjacent pair of elements in a range?
#include <iostream> #include <boost/algorithm/adjacent_for_each.hpp>
void PrintInts(int a, int b) { std::cout << '(' << a << ", " << b << ")\n"; }
int main() { const int ints[] = {0, 1, 2, 3, 4}; boost::algorithm::adjacent_for_each(ints, ints + 5, PrintInts); }
Yes, I think would be a good utillity. But consider generalizing: for_each_slice<N>( ..., PrintInts() ) so we can decide how big the sliding window is. Perhaps it's better with a run-time argument: for_each_slice( 3, // size of slize iterator begin, iterator end, Functor fun ) and provide range overload in terms of the iterator version. -Thorsten