::iterator+int wie?
-
wie schaff ich es einen
map<int,int>::iterator mit einen int zu addieren
wenn ich z.b. eine for schleife habclass My{ public: int x,y,z; }; map<int,My> loo; map<int,My>::iterator i; for(i = loo.end();i >= loo.end()+320+240;i++){ //code //code }
-
gar nicht. ergibt ja auch keinen sinn.
wozu brauchst du das? iterieren über die map macht man mit ++-operator auf den iterator.
-
btw, was erwartest du eigentlich, wenn du vom end()-Iterator der map<> nach hinten weiterläufst? Dort ist nichts - und jeder Versuch, dort etwas zu finden, endet in undefiniertem Verhalten (wenn du Glück hast, "nur" ein SegFault).
-
kiba91 schrieb:
...
for(i = loo.end();i >= loo.end()+320+240;i++){Was versprichst Du Dir denn von dem Statement ?
Es bedeutete (wenn es denn gültig wäre):
- gehe HINTER das letzte Element und
- wandere soweit weiter im Speicher herum, bis Du 561 "Elementweiten" hinter dem letzten Element bist.Ich denke, Du möchtest etwas ganz anderes...
Gruß,
Simon2.
-
ach is schon gut hab das prob jetzt gelöst
thx, für einige hinweise
-
Kann man nicht std::advance() benutzen?
-
Artchi schrieb:
Kann man nicht std::advance() benutzen?
an das hab ich jetzt auch gedacht
-
Artchi schrieb:
Kann man nicht std::advance() benutzen?
Theoretisch ja - praktisch ist es trotzdem undefiniert, über end() hinauszulaufen.