språk som Python , Ruby og Java kan gjøre programmeringen lettere . Men når det gjelder tid for rå kraft og fart , er det ingen moderne språk som den gamle standby : C. Men kommer denne kraften til en pris. Selv enkle operasjoner , for eksempel å fjerne gjenstander fra en matrise, kan være en noe svimlende bedrift for en programmerer vant til dynamisk utvalg resizing tilgjengelig i mange moderne språk . Her vil skape en funksjon som kan brukes for å fjerne et element fra et heltall matrise. . Instruksjoner
en
Åpne en teksteditor
2
Lim inn følgende funksjon : en
void removeElement ( int * arr , int element , int * size ) {
int teller = 0;
for ( int x = 0 ; x < * størrelse; ! x + + ) {
if ( x = element) {
arr [ teller ] = arr [ x ];
teller + +;
}
}
* size = * størrelse - 1 ;
}
p Som du kan se, tar dette en peker til en array, elementet som skal fjernes , og størrelsen på tabellen. Den siste variabelen er svært viktig : C rett og slett ikke tillater å redusere størrelsen på et erklært array ( eller øke den, for den saks skyld . ) I stedet må du holde oversikt over størrelsen på array separat, og bruke " sizeof "-funksjon som bare en referanse for tabellens gjeldende maksimale størrelse. Størrelsen og matrise seg selv er både sendes som pekere , slik at vi kan få på deres adresser og endre deres verdier utenfor funksjonen
Etter det, er logikken enkel: . Data til høyre for fjernet element er rett og slett forskjøvet til venstre .
3
Lagre arbeidet i " removeElement.cpp . "