Skip to main content

Cos'è un iteratore vettoriale?

Un iteratore vettoriale è un costrutto del linguaggio del computer che consente a un programma di leggere i valori dei dati contenuti in una raccolta specializzata chiamata vettore.I vettori sono oggetti utilizzati per raggruppare valori di dati correlati, simili a array ed elenchi.Molti linguaggi di computer diversi, in particolare Java e C ++, contengono vettori e i loro iteratori correlati.Ogni lingua utilizza una sintassi diversa per gli iteratori, ma il meccanismo sottostante in tutte le lingue è l'accesso individuale a ciascun possibile membro del gruppo vettoriale.

che si muove attraverso un vettore usando un iteratore è spesso chiamato traversa o iterazione.Gli iteratori vettoriali possono anche essere utilizzati per identificare esplicitamente un particolare oggetto nella raccolta vettoriale.Quando viene eseguita questa identificazione, l'oggetto viene identificato dal suo indice nel vettore, non da alcuna caratteristica dell'oggetto stesso.Le azioni possono essere eseguite sull'oggetto se l'iteratore è dereferenziato, concedendo al programma l'accesso esplicito all'oggetto piuttosto che al vettore.

Iteratori vettoriali hanno pochissime possibilità di incontrare gli errori fuori dai limiti che possono verificarsi mentre si iterando su array.Sebbene i vettori siano essenzialmente array glorificati quando decostruiti, i vettori hanno quasi sempre un qualche tipo di controllo dei limiti che garantisce che un iteratore vettoriale rimanga negli indici appropriati.Quando si attraversa un vettore, l'iteratore, se chiamato correttamente, inizia sempre all'inizio del vettore e termina esattamente alla fine.Le specifiche esplicite di un indice errato sono ancora possibili in determinati contesti, ma i limiti integrati che controllano i vettori, che si traducono nei loro iteratori, impediscono i limiti di overflow problemi.

In C ++, i vettori possono essere modificati mentre vengono attraversati dagli iteratori, ma Java proibisce esplicitamente questo di accadere.Le azioni di Javas in questa circostanza sono molto più sicure perché cambiare un vettore mentre un iteratore si sta muovendo può far leggere inavvertitamente l'iteratore al di fuori del vettore.Il tentativo di aggiungere o rimuovere gli articoli da un vettore durante l'iterazione è particolarmente pericoloso, in particolare se gli indici di avvio e fine che il vettore deve coprire sono codificati.Un iteratore vettoriale non è attrezzato per gestire improvvisi cambiamenti nei vettori e i vettori sono pensati per essere relativamente statici mentre vengono attraversati.

Un iteratore vettoriale può essere implicito o esplicito, e la forma sintattica corre il traversario altrettanto bene.Nonostante sia codificato per l'efficienza, un iteratore vettoriale può essere rallentato da un vettore molto grande.In questo caso, la codifica hard l'indice finale del vettore accelera i traversali.Questo problema non si verifica con piccoli vettori, quindi la codifica hard l'indice finale non causa alcun acceleto apprezzabile.Codice hard L'indice finale può aumentare il rischio di overflow, quindi in generale dovrebbe essere fatto con parsimonia.