public static void Generate <T>(ForwardIterator <T> begin, ForwardIterator <T> end, Functional.GenFunction <T> func) { for (begin = IteratorUtil.Clone(begin); !begin.Equals(end); begin.MoveNext()) { begin.Write(func()); } }
public static void Swap <T>(ForwardIterator <T> lhs, ForwardIterator <T> rhs) { T temp = lhs.Read(); lhs.Write(rhs.Read()); rhs.Write(temp); }
public static void Fill <T>(ForwardIterator <T> begin, ForwardIterator <T> end, T value) { for (begin = IteratorUtil.Clone(begin); !begin.Equals(end); begin.MoveNext()) { begin.Write(value); } }
public static void Replace <T>(ForwardIterator <T> begin, ForwardIterator <T> end, T oldValue, T newValue, IEqualityComparer <T> comparer) { for (begin = IteratorUtil.Clone(begin); !begin.Equals(end); begin.MoveNext()) { if (comparer.Equals(oldValue, begin.Read())) { begin.Write(newValue); } } }
public static void Replace <T>(ForwardIterator <T> begin, ForwardIterator <T> end, T oldValue, T newValue) where T : IEquatable <T> { for (begin = IteratorUtil.Clone(begin); !begin.Equals(end); begin.MoveNext()) { if (oldValue.Equals(begin.Read())) { begin.Write(newValue); } } }
public static void ReplaceIf <T>(ForwardIterator <T> begin, ForwardIterator <T> end, T newValue, Functional.UnaryPredicate <T> func) where T : IEquatable <T> { for (begin = IteratorUtil.Clone(begin); !begin.Equals(end); begin.MoveNext()) { if (func(begin.Read())) { begin.Write(newValue); } } }