C++ for loop! Ezek a kifejezések egyenértékűek?
Ha "it" egy valami::iterator, és "a" egy tömb (pl vektor), akkor egyenértékű a következő két kifejezés? Elképzelhető olyan tömb, vagy típus, amelyiknél nem?
for (it = a.begin(); it < a.end(); ++it) {...}
és
for (it = a.begin(); it != a.end(); ++it) {...}
Nem minden iterátor típus hasonlítható össze <,> jelekkel. Ráadásul így sokszor nem biztos, hogy azt adja vissza, mint amire számítasz. Viszont minden iterátorra működik a it!=a.end(). Így nagyobb területet átfogó és rugalmasabb kódot írhatsz.
1-es, ezzel nem értek feltétlenül egyet, pl a std::vector elemei mindig egymást követik a memóriában (contiguous)
2-es, köszi. Voltaképpen attól féltem, hogy mi lesz, ha a ciklus közben megváltoztatom a tömböt (elemek hozzáadása, törlése), de a link szerint a !=.end() ezt is mindig kezeli.
"1-es, ezzel nem értek feltétlenül egyet, pl a std::vector elemei mindig
egymást követik a memóriában (contiguous)"
Szerintem nézz utána mi a különbség a szükséges és elégséges feltétel között.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!