Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- typedef std::list::const_iterator iterator;
- typedef pair<iterator*, unsigned> mlpair;
- //Returns an iterator pointing to an element before the middle of the list
- inline
- mlpair middle_length(
- iterator begin,
- const iterator & end
- unsigned pos=0,
- ) {
- if (begin == end)
- return make_pair(begin, pos); // Total length found
- mlpair n = middle_length(begin+1, end, pos+1);
- if (pos >= int(n.second)/2 - 1 ) // True for all positions greater or equal needed
- n.first=begin;
- return n; // Before target position just return the one already found
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement