Det er fint nok at I siger et array altid er fortløbende(jeg er af samme mening), men spørgsmålet er om I kan bevise det??? Er der nogle der kan bevise at Compileren ikke har overloadet []-operatoren?
Fx kan du anvende funktionen sizeof til at få den mængde hukommelse der er fra start til slut af arrayet. Mængden ville naturligvis ikke passe hvis det fx var en hægtet liste, da der ville anvendes mere memory hertil! (+ der ville sandsynligvis være andre objekter imellem...)
En fordel ved arrays er netop at der er direkte opslag (hurtig da der ikke er nogle performance hits ved at løbe gennem en liste). Skal man fx have fat i 3. element, tager man blot arrayets begyndelse (i mem) og lægger 2*indholdstypens størrelse til.
Endelig kan du jo prøve i en debugger som VC++ at lave et array, fylde det op med noget genkendeligt og så angive adresser i memory, som du vil undersøge. Du vil se at arrayets elementer ligger i forlængelse af hinanden!
hovsa... hurtig da der ikke er nogle performance hits ved at løbe gennem en liste skulle have været hurtig da der ikke er nogle performance hits ved at løbe gennem det, som ved en liste
=> komp Jeg mener disky har ret i at du burde have sat point på, da der ikke har foregået megen diskurion her; du har spurgt vi har svaret! Havde det været en reel diskution, havde du måske selv deltaget mere aktivt...
Nå, men lidt dokumentation fra MSDN: A search algorithm using array structures usually runs faster than a search algorithm using dynamically allocated linked lists, because an array is contiguous in memory and is likely to reside on a few pages of virtual memory; it will most probably reside in RAM
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.