Eigene Iteratoren schreiben
-
Vielen Dank für eure Antworten!
Haben mir wirklich weitergeholfen
-
Wie erkenn ich denn, ob ich am Ende des Iterators angekommen bin,
wenn ich meinen ursprünglichen vector (oder ähnliches) nicht mehr zur Verfügung
hab, sondern nur den std::iterator?
-
IteratorBasis schrieb:
Wie erkenn ich denn, ob ich am Ende des Iterators angekommen bin,
wenn ich meinen ursprünglichen vector (oder ähnliches) nicht mehr zur Verfügung
hab, sondern nur den std::iterator?indem Du Dir innerhalb des neuen (Filter-)Iterators auch den ursprünglichen Ende-Iterator merkst. Folge dem Link von .filmor
.filmor schrieb:
Da ist sogar bereits ein Iterator-Adapter namens filter_iterator drin, der so ungefähr das tun sollte, was du haben willst.
und schau Dir das Beispiel an.
Gruß
Werner
-
Danke Werner,
ich dachte es geht etvl. ohne (zusätzliches) cachen des letzten Elementes...
-
Warum geht das so nicht?
#include <vector> template<typename T> class Test { Test(); virtual ~Test(); private: std::vector<T>::iterator it; };Der Kompiler meldet:
9 Test.h expected `;' before "it"Mit nem normalen std::vector<T> geht es, warum nicht mit std::vector<T>::iterator?
Vielen Dank im voraus,
Iterator
-
fehlt eine typename:
private: typename std::vector<T>::iterator it;
-
Wie easy...
Danke
-
Hallo,
jetzt hab ich das Problem, dass ich nicht weiß wie ich über einen
const std::vector<T> iteriere...
Solange ich das const weglasse funktioniert es, sonst nicht...const std::vector<T>& listb = myMethod(); // liefert const std::vector<T>& zurück typename std::vector<T>::iterator it2 = listb.begin();Kann ich nicht über einen const Vector iterieren?
Gruß,
Iterator
-
Fehlermehldung:
invalid conversion from `const MyObj* const* const' to `const MyObj**'
-
typename std::vector<T>::const_iterator it2vielleicht solltest du dir mal mehr über die std container und iteratoren durchlesen.
http://www.sgi.com/tech/stl/Container.html
http://www.sgi.com/tech/stl/Iterators.html