public static IEnumerable <T> CreateEnumerator <T>(InputIterator <T> begin, InputIterator <T> end)
        {
            begin = IteratorUtil.Clone(begin);
            while (!begin.Equals(end))
            {
                yield return(begin.Read());

                begin.MoveNext();
            }
        }
Example #2
0
        public static int Distance <T>(InputIterator <T> first, InputIterator <T> last)
        {
            first = IteratorUtil.Clone(first);
            int result = 0;

            while (!first.Equals(last))
            {
                first.MoveNext();
                ++result;
            }
            return(result);
        }
 public static bool IsOneElementRange <T>(InputIterator <T> first, InputIterator <T> last)
 {
     first = IteratorUtil.Clone(first);
     first.MoveNext();
     return(first.Equals(last));
 }
Example #4
0
 public static ListIterator <T> AdvanceCopy <T>(ListIterator <T> iter, int distance)
 {
     iter = IteratorUtil.Clone(iter);
     Advance(iter, distance);
     return(iter);
 }
Example #5
0
 public static RandomAccessIterator <T> AdvanceCopy <T>(RandomAccessIterator <T> iter, int distance)
 {
     iter = IteratorUtil.Clone(iter);
     Advance(iter, distance);
     return(iter);
 }
Example #6
0
 public static BidirectionalIterator <T> AdvanceCopy <T>(BidirectionalIterator <T> iter, int distance)
 {
     iter = IteratorUtil.Clone(iter);
     Advance(iter, distance);
     return(iter);
 }