Iteratoren-Arithmetik
-
Doppelte Schleife bei der die zweite immer eins weiter anfängt als die erste:
Ziel: schöne Lösung ...Idee:
set<vector<bool> >::iterator iterU; set<vector<bool> >::iterator iterV; for(iterU = s->begin();iterU!=s->end();iterU++){ for(iterV = iterU +1 ;iterV!=s->end();iterV++){ //vektoren vergleichen } }
ich habs dann so gemacht (doof) und bin hauptsächlich neugierig,
warum die Version oben (weniger doof) nicht funktioniert.Lsg:
set<vector<bool> >::iterator iterU; set<vector<bool> >::iterator iterV; for(iterU = s->begin();iterU!=s->end();iterU++){ iterV = iterU; iterV++; :xmas2: for(;iterV!=s->end();iterV++){ //vektoren vergleichen } }
-
Versuch mal
iterV = ++iterU;
-
Wobei afaik das andere auch gehen müsste?
-
es müsste aber iterU++ heißen, da sonst iterV = iterU ist und das ++ nicht berücksichtigt wird... in den fag steht ein bericht dazu...