title: Get each nth element of iterator range
body: <p>Is there any standard implementation (meaning stdlib or boost) of an iterator that wraps another iterator and gives only each nth element of it?</p>
  
  <p>I first thought this would be possible with a fitting predicate and boost::filter_iterator, but the predicate gets only the value and not the base iterator, so it cannot tell the distance to the start.</p>
  
  <p><strong>Edit</strong> <br>
  To give some more information:
  The iterator should be compatible with functions like <code>std::transform</code> or <code>std::copy</code>.
  So it should be used like stdlib iterators.</p>
  
  <p>Similar questions:<br>
  <a href="https://stackoverflow.com/questions/2476425/c-stl-stdtransform-with-given-stride">C++/STL: std::transform with given stride?</a> <br>
  <a href="https://stackoverflow.com/questions/9387569/non-unit-iterator-stride-with-non-random-access-iterators">Non-unit iterator stride with non-random access iterators</a></p>