Was ist ein Vektor Iterator?

Ein Vektoriterator ist ein Computersprachekonstruieren, das ein Programm die Datenwerte lesen lässt, die in einer fachkundigen Ansammlung enthalten, die einen Vektor genannt. Vektoren sind die Gegenstände, die benutzt, um die in Verbindung stehenden Datenwerte zu gruppieren, die Reihen und Listen ähnlich sind. Viele verschiedenen Computersprachen, höchst bemerkenswert Java und C++, enthalten Vektoren und ihre in Verbindung stehenden iterators. Jede Sprache verwendet unterschiedliche Syntax für die iterators, aber der zugrunde liegende Mechanismus in allen Sprachen ist einzelner Zugang zu jedem möglichen Mitglied der vektorgruppe.

Das Bewegen durch einen Vektor using ein iterator benannt häufig Überquerung oder Wiederholung. Vektoriterators können auch verwendet werden, um einen bestimmten Gegenstand in der vektoransammlung ausdrücklich zu kennzeichnen. Wenn diese Kennzeichnung durchgeführt, gekennzeichnet der Gegenstand durch seinen Index im Vektor, nicht durch alle mögliche Eigenschaften des Gegenstandes selbst. Tätigkeiten können am Gegenstand durchgeführt werden, wenn das iterator dereferenziert und dem Programm ausdrücklichen Zugang zum Gegenstand eher als der Vektor bewilligen.

Vektoriterators haben die sehr kleine Wahrscheinlichkeit der Begegnung aus Grenzstörungen heraus, die bei der Wiederholung geschehen können über Reihen. Obgleich Vektoren im Wesentlichen glorifizierte Reihen sind, wenn sie, deconstructed, haben Vektoren fast immer eine Art Grenzprüfen, das sicherstellt, dass ein Vektoriterator an den korrekten Indizes bleibt. Wenn es einen Vektor überquert, beginnt das iterator, wenn es richtig benannt, immer zu Beginn des Vektors und der Enden genau am Ende. Ausdrückliche Spezifikation eines falschen Index ist in bestimmten Zusammenhängen noch möglich, aber die Built-ingrenzprüfung von Vektoren, die zu ihren iterators übersetzt, verhindert aus Grenzsammelausgaben heraus.

In C++ können Vektoren bei durch iterators überquert werden geändert werden, aber Java verbietet ausdrücklich dieses vom Vorkommnis. Java Tätigkeiten unter diesem Umstand sind viel sicherer, weil das Ändern eines Vektors, während ein iterator ihn weitergeht, das iterator veranlassen kann, außerhalb des Vektors unbeabsichtigt zu lesen. Versuchen, Einzelteile von einem Vektor, während die Wiederholung hinzuzufügen oder zu entfernen besonders gefährlich ist, besonders wenn die Anfangs- und Endenindizes, die der Vektor umfassen muss, fest verdrahtet. Ein Vektoriterator ausgerüstet nicht ht, um plötzliche Änderungen in den Vektoren zu behandeln, und Vektoren bedeutet, um verhältnismäßig statisch zu sein bei überquert werden.

Ein Vektoriterator kann implizite oder ausdrückliche und jeder syntaktische Formdurchläufe der Traversal als glatt gerade sein. Trotz für Leistungsfähigkeit kodiert werden, kann ein Vektoriterator durch einen sehr großen Vektor verlangsamt werden. In diesem Fall beschleunigt harte Kodierung der Endenindex des Vektors Traversals. Dieses Problem auftritt nicht mit kleinen Vektoren en, also verursacht harte Kodierung der Endenindex keinen beträchtlichen Speedup. Harte Kodierung der Endenindex kann das Risiko von Überlauf aufwerfen, also im Allgemeinen sollte sie kaum erfolgt werden.