title: How to tell boost::split_iterator to start in the middle of string?
body: <p>I want to iterate over the tokens in a string:</p>
  
  <pre><code> #include &lt;boost/algorithm/string.hpp&gt;
  
    using namespace boost::algorithm;
    typedef split_iterator&lt;std::string::const_iterator&gt; SplitIter;
    for(SplitIter i = make_split_iterator(str, token_finder(is_space()));
        i != SplitIter(); ++i)
      std::cout &lt;&lt; *i &lt;&lt; std::endl; // prints token
  </code></pre>
  
  <p>This approach using the <code>split_iterator</code> is ideal for me because it doesn't copy the matches into a vector but just iterates over the ranges it finds, so it's very efficient.</p>
  
  <p>Now, how do I modify this so that the split iterator starts the search at <code>str[5]</code>, for example, instead of at the beginning of the string? Of course, because I want to avoid unnecessary copying, I don't want to do the search on a substring copy <code>str.substr(5)</code>.</p>