Share via


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

Doppelschlange

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

allocator_type

Ein Typ, der die allocator-Klassentyp für das deque-Objekt darstellt.

const_iterator

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.

const_pointer

Ein Typ, der einen Zeiger auf ein Element in einer deque-als const. bereitstellt.

const_reference

Ein Typ, der einen Verweis auf ein Element in einer deque zum Lesen und für andere Vorgänge als const. bereitstellt

const_reverse_iterator

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

difference_type

Ein Typ, der den Unterschied zwischen zwei Iteratoren mit zufälligem Zugriff, die auf Elemente in derselben deque verweisen, bereitstellt.

Iterator

Ein Typ, der einen Iterator mit zufälligem Zugriff bereitstellt, mit dem jedes Element in einer deque gelesen oder geändert werden kann.

Zeiger

Ein Typ, der einen Zeiger auf ein Element in einer deque bereitstellt.

Verweis

Ein Typ, der einen Verweis auf ein in einer deque gespeichertes Element bereitstellt.

reverse_iterator

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.

size_type

Ein Typ, der die Anzahl von Elementen in einer deque zählt.

value_type

Ein Typ, der den in einer deque gespeicherten Datentyp darstellt.

Memberfunktionen

assign

Löscht Elemente aus einer deque und kopiert eine neue Sequenz von Elementen in die Ziel-deque.

at

Gibt einen Verweis auf das Element an einer angegebenen Position in der deque zurück.

back

Gibt einen Verweis auf das letzte Element der deque zurück.

begin

Gibt ein Iterator mit zufälligem Zugriff zurück, der das erste Element in der deque adressiert.

deque::cbegin

Gibt einen const-Iterator auf das erste Element im deque-Objekt zurück.

deque::cend

Gibt einen const-Iterator mit zufälligem Zugriff zurück, der auf eine Position unmittelbar nach dem Ende der deque verweist.

clear

Löscht alle Elemente einer deque auf.

deque::crbegin

Gibt einen direkten const-Iterator mit zufälligem Zugriff zum ersten Element in der deque zurück, das in umgekehrter Reihenfolge angezeigt wird.

deque::crend

Gibt einen direkten const-Iterator mit zufälligem Zugriff zum ersten Element in der deque zurück, das in umgekehrter Reihenfolge angezeigt wird.

deque::emplace

Fügt ein direkt konstruiertes Element an einer angegebenen Position in die deque ein.

deque::emplace_back

Fügt ein direkt konstruiertes Element am Ende der deque ein.

deque::emplace_front

Fügt ein direkt konstruiertes Element am Anfang der deque ein.

empty

Gibt true zurück, wenn deque keine Elemente enthält, und gibt false zurück, wenn mindestens ein Element enthält.

end

Gibt einen Iterator mit zufälligem Zugriff zurück, der auf eine Position unmittelbar nach dem Ende der deque verweist.

Löschen

Entfernt ein Element oder eine Reihe von Elementen in einer deque aus angegebenen Speicherorten.

front

Gibt einen Verweis auf das erste Element in einer deque zurück.

get_allocator

Gibt eine Kopie des zum Erstellen der deque verwendeten allocator-Objekts zurück.

Einfügen

Fügt ein Element, mehrere Elemente oder einen Reihe von Elementen an einer angegebenen Position in die deque ein.

max_size

Gibt die mögliche Maximallänge der deque zurück.

pop_back

Löscht das Element am Ende der deque.

pop_front

Löscht das Element am Anfang der deque.

push_back

Fügt am Ende der deque ein Element hinzu.

push_front

Fügt am Anfang der deque ein Element hinzu.

rbegin

Gibt dem ersten Element einen Iterator mit zufälligem Zugriff in umgekehrter deque zurück.

rend

Gibt einen Iterator mit zufälligem Zugriff zurück, der grade über das letzte Element in einer umgekehrten deque zeigt.

resize

Gibt eine neue Größe für eine deque an.

deque::shrink_to_fit

Verwirft Überkapazität.

size

Gibt die Anzahl von Elementen in der deque zurück.

swap

Tauscht die Elemente zweier dequen.

Operatoren

operator[]

Gibt einen Verweis auf das deque-Element an einer angegebenen Position zurück.

deque::operator=

Ersetzt die Elemente der deque mit einer Kopie einer anderen deque.

Anforderungen

Header: <Doppelschlange>

Siehe auch

Referenz

Threadsicherheit in der C++-Standardbibliothek

Standardvorlagenbibliothek

Weitere Ressourcen

<deque> Member

Doppelschlange Klassenmember