|
Boost Users : |
Subject: [Boost-users] Iterator Range, sub range of a desired size
From: David Kimmel (davidwkimmel_at_[hidden])
Date: 2012-10-29 00:40:29
Is there a function in BOOST, given a starting point and a desired size, that
returns iterators for a (sub) range?
For example, given:
a boost::circular_buffer which contains: 1 2 3 4 5 6 7 8 9 10
a starting point which is an iterator pointing to 5
and finally a desired size which is an int s = 4
The result of which would be iterators producing: 5 6 7 8
A possible implementation might be this (but I was hoping there was a BOOST
version since I can't find an STD algorithm)
template <typename Itr>
std::pair<Itr, Itr> getWindowDown(Itr begin, Itr end, Itr start, const int
windowSize)
{
// Down first, then up if need be
const Itr bottom = (end - start > windowSize) ? (start + windowSize) :
(end);
const Itr top = (bottom - begin > windowSize) ? (bottom - windowSize) :
(begin);
return make_pair(top, bottom);
}
Thanks,
-- View this message in context: http://boost.2283326.n4.nabble.com/Iterator-Range-sub-range-of-a-desired-size-tp4637719.html Sent from the Boost - Users mailing list archive at Nabble.com.
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net