deque-Klasse
Ordnet Elemente eines angegebenen Typs in einer linearen Anordnung an, und aktiviert, wie ein Vektor, schnellen zufälligen Zugriff auf jedes Element sowie effizientes Einfügen und Löschen auf der Rückseite des Containers. Im Gegensatz zu einem Vektor, unterstützt die deque-Klasse allerdings auch das effiziente Einfügen und Löschen im Vordergrund des Containers.
template <
class Type,
class Allocator=allocator<Type>
>
class deque
Parameter
Type
Der in der Doppelschlange zu speichernde Elementdatentyp.Allocator
Der Typ, der das gespeicherte Zuordnungsobjekt darstellt, das Details zum Belegen und Freigeben des Arbeitsspeichers der Doppelschlange kapselt. Dieses Argument ist optional, und der Standardwert ist allocator<Typ>.
Hinweise
Die Auswahl des Containertyps sollte im Allgemeinen auf Grundlage des für die Anwendung erforderlichen Suchen und Einfügetyps erfolgen. Vektoren sollten der bevorzugte Container zum Verwalten einer Sequenz sein, wenn zufälliger Zugriff auf jedes Element unbedingt erforderlich ist und das Einfügungen oder Löschen von Elementen nur am Ende einer Sequenz notwendig ist. Die Leistung des Liste-Containers ist überlegen, wenn das effiziente Einfügungen und Löschen (in konstanter Zeit) an einem beliebigen Speicherort innerhalb der Sequenz unbedingt erforderlich ist. Solche Vorgänge in der Mitte der Sequenz benötigen Elementkopien und -Zuweisungen, die zur Anzahl von Elementen in der Sequenz proportional sind (lineare Zeit).
Die Neuzuordnung von Doppelschlangen tritt auf, wenn Elemente der Sequenz von einer Memberfunktion eingefügt oder gelöscht werden müssen:
Beim Einfügen eines Elements in eine leere Sequenz bzw. beim Deaktivieren eines Element zum Verlassen einer leeren Sequenz, werden Iteratoren frühere von begin zurückgegeben, und end wird ungültig.
Wenn ein Element an der ersten Position der Doppelschlange eingefügt wird, werden anschließend alle Iteratoren, allerdings keine Verweise, die vorhandene Elemente festlegen, ungültig.
Wenn ein Element am Ende der Doppelschlange eingefügt wird, werden anschließend end und alle Iteratoren, allerdings keine Verweise, die vorhandene Elemente festlegen, ungültig.
Wenn ein Element im Vordergrund der Doppelschlange gelöscht wird, werden nur dieser Iterator und die Verweise auf das gelöschte Element ungültig.
Wenn das letzte Element am Ende der Doppelschlange gelöscht wird, werden nur dieser Iterator am letzen Element und die Verweise auf das gelöschte Element ungültig.
Andernfalls werden alle Iteratoren und Verweise durch das Einfügen und Löschen eines Elements und ungültig.
Konstruktoren
Erstellt eine deque.. Mehrere Konstruktoren werden bereitgestellt, um den Inhalt der neuen deque auf unterschiedliche Art zu installieren: leer, mit einer angegebenen Anzahl leerer Elemente geladen, Inhalte von einer anderen deque mithilfe eines Iterators verschoben oder kopiert sowie ein Element _Count Male in die deque kopiert. Einige der Konstruktoren ermöglichen die Verwendung eines benutzerdefinierten allocator zum Erstellen von Elementen. |
Typedefs
Ein Typ, der die allocator-Klassentyp für das deque-Objekt darstellt. |
|
Ein Typ, der einen Iterator mit zufälligem Zugriff bereitstellt, mit dem auf Elemente in der deque als const zugegriffen, und mit dem diese Elemente gelesen werden können. |
|
Ein Typ, der einen Zeiger auf ein Element in einer deque-als const. bereitstellt. |
|
Ein Typ, der einen Verweis auf ein Element in einer deque zum Lesen und für andere Vorgänge als const. bereitstellt |
|
Ein Typ, der einen Iterator mit zufälligem Zugriff bereitstellt, mit dem auf Elemente in der deque als const zugegriffen, und mit dem diese Elemente gelesen werden können. Die Doppelschlange wird umgekehrt angezeigt. Weitere Informationen finden Sie unter reverse_iterator-Klasse |
|
Ein Typ, der den Unterschied zwischen zwei Iteratoren mit zufälligem Zugriff, die auf Elemente in derselben deque verweisen, bereitstellt. |
|
Ein Typ, der einen Iterator mit zufälligem Zugriff bereitstellt, mit dem jedes Element in einer deque gelesen oder geändert werden kann. |
|
Ein Typ, der einen Zeiger auf ein Element in einer deque bereitstellt. |
|
Ein Typ, der einen Verweis auf ein in einer deque gespeichertes Element bereitstellt. |
|
Ein Typ, der einen Iterator mit zufälligem Zugriff bereitstellt, mit dem ein Element in einer deque gelesen oder geändert werden kann. Die Doppelschlange wird in umgekehrter Reihenfolge angezeigt. |
|
Ein Typ, der die Anzahl von Elementen in einer deque zählt. |
|
Ein Typ, der den in einer deque gespeicherten Datentyp darstellt. |
Memberfunktionen
Löscht Elemente aus einer deque und kopiert eine neue Sequenz von Elementen in die Ziel-deque. |
|
Gibt einen Verweis auf das Element an einer angegebenen Position in der deque zurück. |
|
Gibt einen Verweis auf das letzte Element der deque zurück. |
|
Gibt ein Iterator mit zufälligem Zugriff zurück, der das erste Element in der deque adressiert. |
|
Gibt einen const-Iterator auf das erste Element im deque-Objekt zurück. |
|
Gibt einen const-Iterator mit zufälligem Zugriff zurück, der auf eine Position unmittelbar nach dem Ende der deque verweist. |
|
Löscht alle Elemente einer deque auf. |
|
Gibt einen direkten const-Iterator mit zufälligem Zugriff zum ersten Element in der deque zurück, das in umgekehrter Reihenfolge angezeigt wird. |
|
Gibt einen direkten const-Iterator mit zufälligem Zugriff zum ersten Element in der deque zurück, das in umgekehrter Reihenfolge angezeigt wird. |
|
Fügt ein direkt konstruiertes Element an einer angegebenen Position in die deque ein. |
|
Fügt ein direkt konstruiertes Element am Ende der deque ein. |
|
Fügt ein direkt konstruiertes Element am Anfang der deque ein. |
|
Gibt true zurück, wenn deque keine Elemente enthält, und gibt false zurück, wenn mindestens ein Element enthält. |
|
Gibt einen Iterator mit zufälligem Zugriff zurück, der auf eine Position unmittelbar nach dem Ende der deque verweist. |
|
Entfernt ein Element oder eine Reihe von Elementen in einer deque aus angegebenen Speicherorten. |
|
Gibt einen Verweis auf das erste Element in einer deque zurück. |
|
Gibt eine Kopie des zum Erstellen der deque verwendeten allocator-Objekts zurück. |
|
Fügt ein Element, mehrere Elemente oder einen Reihe von Elementen an einer angegebenen Position in die deque ein. |
|
Gibt die mögliche Maximallänge der deque zurück. |
|
Löscht das Element am Ende der deque. |
|
Löscht das Element am Anfang der deque. |
|
Fügt am Ende der deque ein Element hinzu. |
|
Fügt am Anfang der deque ein Element hinzu. |
|
Gibt dem ersten Element einen Iterator mit zufälligem Zugriff in umgekehrter deque zurück. |
|
Gibt einen Iterator mit zufälligem Zugriff zurück, der grade über das letzte Element in einer umgekehrten deque zeigt. |
|
Gibt eine neue Größe für eine deque an. |
|
Verwirft Überkapazität. |
|
Gibt die Anzahl von Elementen in der deque zurück. |
|
Tauscht die Elemente zweier dequen. |
Operatoren
Gibt einen Verweis auf das deque-Element an einer angegebenen Position zurück. |
|
Ersetzt die Elemente der deque mit einer Kopie einer anderen deque. |
Anforderungen
Header: <Doppelschlange>
Siehe auch
Referenz
Threadsicherheit in der C++-Standardbibliothek