# Range iterators

[Range and value iterators]

## Detailed Description

A range iterator provides incremental access to a sequence of increasing ranges.Requires

```
#include "gecode/iter.hh"
```

## Modules | |

Range iterators with virtual member functions | |

Operations on range iterators | |

## Classes | |

class | Gecode::Iter::Ranges::AddRange< I > |

Range iterator for adding a single range to a range iterator. More... | |

class | Gecode::Iter::Ranges::SubRange< I > |

Range iterator for subtracting a single range from a range iterator. More... | |

class | Gecode::Iter::Ranges::Append< I, J > |

Range iterator for appending two range iterators More... | |

class | Gecode::Iter::Ranges::NaryAppend< I > |

Range iterator for appending arbitrarily many iterators. More... | |

class | Gecode::Iter::Ranges::Array |

Range iterator for array of ranges More... | |

class | Gecode::Iter::Ranges::Cache< I > |

Range iterator cache More... | |

class | Gecode::Iter::Ranges::ValCache< I > |

Range iterator cache More... | |

class | Gecode::Iter::Ranges::Compl< UMIN, UMAX, I > |

Range iterator for computing the complement (described by template arguments). More... | |

class | Gecode::Iter::Ranges::ComplVal< I > |

Range iterator for computing the complement (described by values). More... | |

class | Gecode::Iter::Ranges::Diff< I, J > |

Range iterator for computing set difference. More... | |

class | Gecode::Iter::Ranges::Empty |

Range iterator for empty range. More... | |

class | Gecode::Iter::Ranges::Inter< I, J > |

Range iterator for computing intersection (binary). More... | |

class | Gecode::Iter::Ranges::NaryInter< I > |

Range iterator for intersection for any number of iterators. More... | |

class | Gecode::Iter::Ranges::Map< I, M, strict > |

Range iterator for mapping ranges. More... | |

class | Gecode::Iter::Ranges::MinMax |

Base for range iterators with explicit min and max. More... | |

class | Gecode::Iter::Ranges::Minus< I > |

Range iterator for pointwise minus of a range iterator. More... | |

class | Gecode::Iter::Ranges::Negative< I, strict > |

Range iterator for negative part of a range iterator. More... | |

class | Gecode::Iter::Ranges::Offset< I > |

Range iterator for pointwise offset (by some constant). More... | |

class | Gecode::Iter::Ranges::Positive< I, strict > |

Range iterator for positive part of a range iterator. More... | |

class | Gecode::Iter::Ranges::ScaleUp< Val, UnsVal, I > |

Range iterator for pointwise product with a positive integer. More... | |

class | Gecode::Iter::Ranges::ScaleDown< I > |

Range iterator for pointwise division by a positive integer. More... | |

class | Gecode::Iter::Ranges::SingletonAppend< J > |

Range iterator for appending a singleton with a range iterator More... | |

class | Gecode::Iter::Ranges::Singleton |

Range iterator for singleton range. More... | |

class | Gecode::Iter::Ranges::Size< I > |

Range iterator with size counting More... | |

class | Gecode::Iter::Ranges::Union< I, J > |

Range iterator for computing union (binary). More... | |

class | Gecode::Iter::Ranges::NaryUnion< I > |

Range iterator for union for any number of iterators. More... |