21 #ifndef TULIP_STABLEITERATOR_H 22 #define TULIP_STABLEITERATOR_H 23 #include <tulip/Iterator.h> 24 #include <tulip/tulipconf.h> 55 template<
class itType>
56 struct StableIterator :
public Iterator<itType> {
65 StableIterator(
Iterator<itType> *inputIterator,
size_t nbElements = 0,
bool deleteIterator =
true) {
66 sequenceCopy.reserve(nbElements);
68 for (; inputIterator->
hasNext();) {
69 sequenceCopy.push_back(inputIterator->
next());
75 copyIterator = sequenceCopy.begin();
81 itType tmp(*copyIterator);
87 return (copyIterator != sequenceCopy.end());
97 copyIterator = sequenceCopy.begin();
104 std::vector<itType> sequenceCopy;
109 typename std::vector<itType>::const_iterator copyIterator;
virtual itType next()=0
Moves the Iterator on the next element.
Interface for Tulip iterators. Allows basic iteration operations only.
virtual bool hasNext()=0
Tells if the sequence is at its end.