Vad är en vektor iterator?

A Vector Iterator är en datorspråkskonstruktion som gör det möjligt för ett program att läsa datavärden som finns i en specialiserad samling som kallas en vektor. Vektorer är objekt som används för att gruppera relaterade datavärden, liknande matriser och listor. Många olika datorspråk, framför allt Java och C ++, innehåller vektorer och deras relaterade iteratorer. Varje språk använder olika syntax för iteratorerna, men den underliggande mekanismen på alla språk är individuell tillgång till varje möjlig medlem i vektorgruppen.

som rör sig genom en vektor med hjälp av en iterator kallas ofta genom att korsa eller iterera. Vektor -iteratorer kan också användas för att uttryckligen identifiera ett visst objekt i vektorsamlingen. När denna identifiering utförs identifieras objektet av dess index i vektorn, inte av några egenskaper hos själva objektet. Åtgärder kan utföras på objektet om iteratorn är avskräckt, vilket ger programmet uttrycklig åtkomst till objektet snarare än vektorn.

vektor iteratorer har mycket liten chans att möta de av gränser som kan hända samtidigt som man itererar över matriser. Även om vektorer i huvudsak är förhärliga matriser när de dekonstrueras, har vektorer nästan alltid någon typ av gränser som garanterar en vektor iterator förblir i rätt index. När du korsar en vektor börjar iteratorn, om den kallas korrekt, alltid i början av vektorn och slutar vid exakt slutet. Explicit specifikation av ett felaktigt index är fortfarande möjlig i vissa sammanhang, men de inbyggda gränser som kontrollerar vektorer, som översätter till sina iteratorer, förhindrar överflöd av gränser.

I C ++ kan vektorer modifieras medan de korsas av iteratorer, men Java förbjuder uttryckligen att detta händer. Javas handlingar i detta fall är mycket säkrare eftersom att ändra en vektor medan en iterator går på den kan orsaka iterator To Läs oavsiktligt utanför vektorn. Att försöka lägga till eller ta bort objekt från en vektor medan iterering är särskilt farlig, särskilt om start- och slutindexen vektorn måste täcka är hårkodade. En vektor iterator är inte utrustad för att hantera plötsliga förändringar i vektorer, och vektorer är avsedda att vara relativt statiska medan de korsas.

En vektor -iterator kan vara implicit eller uttrycklig, och antingen syntaktisk form kör traversal lika smidigt. Trots att den är kodad för effektivitet kan en vektor -iterator bromsas med en mycket stor vektor. I detta fall påskyndar hårdkodning av slutindexet för vektorn traversaler. Det här problemet uppstår inte med små vektorer, så hård kodning av slutindexet orsakar inte någon märkbar hastighet. Hård kodning av slutindexet kan höja risken för överflöd, så i allmänhet bör det göras sparsamt.

ANDRA SPRÅK

Hjälpte den här artikeln dig? Tack för feedbacken Tack för feedbacken

Hur kan vi hjälpa? Hur kan vi hjälpa?