Skip to main content

Hvad er en dynamisk matrix?

En dynamisk matrix er en datastruktur, der bruges i computerprogrammering, der indeholder flere computerobjekter som en enkelt gruppe, og kan ændres i vilje til at imødekomme det forskellige antal objekter.Gruppen holdes i en enkelt sammenhængende hukommelsesblok, så adgang til elementer er effektiv og hurtig.Dynamiske arrays kaldes også vektorer eller lister, afhængigt af det computersprog, hvor de bruges.På trods af disse navne er en bestemt liste eller vektor muligvis ikke en dynamisk matrix, da lister og vektorer kan implementeres forskelligt fra arrays og fra hinanden.

C ++ indeholder en enkelt dynamisk array -klasse kaldet Vector, der ligger i en gruppe af klasserkaldes standardskabelonbiblioteket.Arrayet, der støtter denne klasse, kan fås adgang til af iteratorer eller ved indekser.Dets evne til at ændre størrelsen på efterspørgslen er en stor fordel, men det kan lokke programmerere til en falsk følelse af sikkerhed, fordi det ikke er så robust, som det ser ud til at være.Den dynamiske matrix, der støtter en vektor, kan ikke sikre, at adgangsanmodninger er gyldige.Ligesom statiske arrays kan dynamiske arrays have grænsekontrol og hukommelseskorruptionsproblemer, hvis et program forsøger at få adgang til hukommelse, der ikke er tildelt dem.

Java indeholder tre forskellige dynamiske array -klasser: Vector, ArrayList og CopyOnWriteArrayList.Elementer i arrayet er kun adgang til ved indekser, og forsøg på at få adgang til indekser uden for matrixen vil normalt ikke forårsage problemer med hukommelseskorruption.Java -vektorklassen svarer omtrent til C ++ Vector -klassen og er ikke synkroniseret for at muliggøre adgang med flere tråde.ArrayList og CopyOnWriteArrayList er derimod begge trådsikre.Af de tre er CopyOnWriteArrayList den mest arbejdskrævende klasse, fordi den fuldstændigt genskaber den dynamiske matrix, hver gang en ny værdi skrives til matrixen.

Dynamiske arrays implementeres i det væsentlige på samme måde uanset det involverede computersprog, menAfhængigt af et bestemt sprog kan der være andre kapaciteter bygget ovenpå.Ligesom statiske arrays begrænser dynamiske arrays ikke den type objekt, der kan gemmes inde i dem, så længe de alle er den samme type objekt.En programmør behøver aldrig at få adgang til en dynamisk matrix direkte;Det kan altid gøres gennem en klasse, der pakker arrayet til let brug.Korrig