Skip to main content

Hvad er en vektor -iterator?

En vektor -iterator er en computersprogskonstruktion, der giver et program mulighed for at læse dataværdier indeholdt i en specialiseret samling kaldet en vektor.Vektorer er objekter, der bruges til at gruppere relaterede dataværdier, der ligner arrays og lister.Mange forskellige computersprog, især Java og C ++, indeholder vektorer og deres relaterede iteratorer.Hvert sprog bruger forskellige syntaks for iteratorerne, men den underliggende mekanisme på alle sprog er individuel adgang til hvert muligt medlem af vektorgruppen.

At bevæge sig gennem en vektor ved hjælp af en iterator kaldes ofte gennemgang eller iterering.Vector -iteratorer kan også bruges til eksplicit at identificere et bestemt objekt i vektoropsamlingen.Når denne identifikation udføres, identificeres objektet ved dets indeks i vektoren, ikke af nogen egenskaber ved selve objektet.Handlinger kan udføres på objektet, hvis iteratoren er overført, hvilket giver programmet eksplicit adgang til objektet snarere end vektoren.

Vector -iteratorer har meget lille chance for at møde de uden for grænserne, der kan ske, mens den itererer over arrays.Selvom vektorer i det væsentlige er glorificerede arrays, når de er dekonstrueret, har vektorer næsten altid en form for grænser, der sikrer, at en vektor -iterator forbliver ved de rette indekser.Når du krydser en vektor, starter iteratoren, hvis den kaldes korrekt, altid i begyndelsen af vektoren og slutter ved nøjagtigt slutningen.Eksplicit specifikation af et forkert indeks er stadig mulig i visse sammenhænge, men de indbyggede grænser, der kontrollerer vektorer, der oversætter til deres iteratorer, forhindrer ud af grænserne overløb., men Java forbyder eksplicit at ske.Javas -handlinger i denne omstændighed er meget sikrere, fordi ændring af en vektor, mens en iterator bevæger sig på den, kan få iteratoren til utilsigtet læst uden for vektoren.Forsøg på at tilføje eller fjerne genstande fra en vektor, mens iterating er især farligt, især hvis start- og slutindekserne, som vektoren skal dække, er hårdkodet.En vektor -iterator er ikke udstyret til at håndtere pludselige ændringer i vektorer, og vektorer er beregnet til at være relativt statisk, mens den krydses.

En vektor -iterator kan være implicit eller eksplicit, og enten syntaktisk form kører gennemgangen lige så glat.På trods af at være kodet for effektivitet, kan en vektor -iterator bremses med en meget stor vektor.I dette tilfælde fremskynder hårdt kodning af slutindekset for vektoren gennemkørsler.Dette problem forekommer ikke med små vektorer, så hårdt kodning af slutindekset forårsager ikke nogen mærkbar speedup.Hård kodning af slutindekset kan øge risikoen for overløb, så det generelt skal gøres sparsomt.