14. december 2007 - 22:30Der er
10 kommentarer og 1 løsning
pre og post increment
hey, sidder og arbejder mig igennem en begynder bog.
og indtil nu troede jeg at jeg havde forstået det med inkrementering, men nu er jeg lidt lost igen
for(int i = 0; i < inventory.size(); ++i) cout << i << ": " << inventory[i] << endl;
et simpelt loop med en pre inkrementering af i. her troede jeg så i vil blive inkrementeret inden linie 2 startede.
for(int i = 0; i < inventory.size(); i++) cout << i << ": " << inventory[i] << endl;
endnu et simpelt loop, med post inkrementering af i, her havde jeg forstået det sådan at i først vil blive inkrementeret når loopet var nået til ende og skulle til at starte forfra.
men når jeg kompilerer de to loops, så er i konstant 0 i første loop. nogen der kan forklarer hvorfor, eller fortælle hvor jeg har misforstået noget.
Jeg mener at der for 15-20 år siden var en compiler der genererede hurtigere kode ved ++i end ved i++ og derfor er der nogen som stadig hævder at ++i er det bedste.
Jeg vil altid lave en for løkke med i++ fordi jeg mener at ++i er læseren til at spilde tid på at spekulere over om der nu er en forskel.
Det er ikke helt rigtigt at der ikke er forskel i et for-loop....
Funktionelt vil de to for-loops godt nok virke ens, men hvis "i" er en kompleks type, så vil i++ være langsommere end ++i. Der kan derfor være en ide i at vænne sig til at skrive ++i i for-loops.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.