Bibliothèque C ++ - <deque>

introduction

Deque est l'acronyme de Double Ended Queue. C'est un conteneur de séquence qui peut changer sa taille d'exécution. Le conteneur est un objet qui contient des données du même type. Les conteneurs de séquence stockent les éléments strictement dans une séquence linéaire.

Les éléments de deque peuvent être dispersés dans différents morceaux de mémoire. Container stocke les informations nécessaires pour permettre un accès direct à n'importe quel élément en temps constant. Contrairement aux vecteurs, deque n'est pas garanti de stocker tout son élément dans des emplacements mémoire contigus. Par conséquent, il ne permet pas un accès direct aux données en compensant les pointeurs. Mais il permet un accès direct à n'importe quel élément en utilisant l'opérateur d'indice [].

Deque peut rétrécir ou s'étendre selon les besoins des deux extrémités au moment de l'exécution. Le besoin de stockage est rempli automatiquement par l'allocateur interne . Deque fournit des fonctionnalités similaires à celles des vecteurs, mais fournit un moyen efficace d'insérer et de supprimer des données de n'importe quelle extrémité.

Les deques de taille zéro sont également valides. Dans ce cas, deque.begin () et deque.end () pointe vers le même emplacement. Mais le comportement d'appel de front () ou back () n'est pas défini.

Définition

Voici la définition de std :: deque à partir du fichier d'en-tête <deque>

template < class T, class Alloc = allocator<T> > class deque;

Paramètres

  • T - Type de l'élément contenu.

    T peut être remplacé par tout autre type de données, y compris le type défini par l'utilisateur.

  • Alloc - Type d'objet allocateur.

    Par défaut, le modèle de classe d'allocateur est utilisé, qui définit le modèle d'allocation de mémoire le plus simple et est indépendant de la valeur.

Types de membres

Les types de membres suivants peuvent être utilisés comme paramètres ou comme type de retour par les fonctions membres.

N ° Sr. Types de membres Définition
1 type de valeur T (premier paramètre du modèle)
2 allocator_type Alloc (deuxième paramètre du modèle)
3 référence type de valeur&
4 const_reference const value_type &
5 aiguille type de valeur*
6 const_pointer const value_type *
sept itérateur un itérateur à accès aléatoire à value_type
8 const_iterator un itérateur à accès aléatoire à const value_type
9 reverse_iterator std :: reverse_iterator <iterator>
dix const_reverse_iterator std :: reverse_iterator <const_iterator>
11 type de taille size_t
12 difference_type ptrdiff_t

Fonctions de <deque>

Vous trouverez ci-dessous la liste de toutes les méthodes de l'en-tête <deque>.

Constructeurs

N ° Sr. Méthode et description
1 deque :: deque constructeur par défaut

Construit un deque vide avec zéro élément.

2 deque :: deque fill constructeur

construire un nouveau deque avec n éléments et affecter val à chaque élément de deque

3 deque :: deque range constructeur

Construit un deque avec autant d'éléments que dans la plage du premier au dernier .

4 deque :: deque copy constructeur

Construit un deque avec copie de chaque élément présent dans le conteneur existant.

5 deque :: deque move constructeur

Construit un deque avec le contenu des autres en utilisant la sémantique de déplacement.

6 deque :: deque constructeur de liste d'initialisation

Construit un deque à partir de la liste d'initialisation.

Destructeur

N ° Sr. Méthode et description
1 deque :: ~ deque

Détruit l'objet deque en désallouant sa mémoire.

Fonctions des membres

N ° Sr. Méthode et description
1 deque :: assigner la version de la plage

Attribuez de nouvelles valeurs aux éléments deque en remplaçant les anciennes.

2 deque :: assign fill version

Attribuez de nouvelles valeurs aux éléments deque en remplaçant les anciennes.

3 deque :: assigner la version de la liste d'initialisation

Attribuez de nouvelles valeurs aux éléments deque en remplaçant les anciennes.

4 deque :: à

Renvoie la référence à l'élément présent à l'emplacement n dans le deque.

5 deque :: retour

Renvoie une référence au dernier élément du deque.

6 deque :: begin

Renvoie un itérateur à accès aléatoire pointant vers le premier élément du deque.

sept deque :: cbegin

Renvoie un itérateur à accès aléatoire constant qui pointe vers le début du deque.

8 deque :: cend

Renvoie un itérateur à accès aléatoire constant qui pointe vers le début du deque.

9 deque :: effacer

Détruit le deque en supprimant tous les éléments du deque et définit la taille de deque à zéro.

dix deque :: crbegin

Renvoie un itérateur inverse constant qui pointe vers le début de l'inverseur du conteneur.

11 deque :: crend

Renvoie un itérateur inverse constant qui pointe vers l'extrémité inverse du deque.

12 deque :: emplace

Étend le conteneur en insérant un nouvel élément à la position .

13 deque :: emplace_back

Insère un nouvel élément à la fin de deque.

14 deque :: emplace_front

Insère un nouvel élément au début de deque.

15 deque :: vide

Teste si deque est vide ou non.

16 deque :: fin

Renvoie un itérateur qui pointe vers l'élément au -delà de la fin dans le conteneur deque.

17 deque :: version de position d' effacement

Supprime un seul élément du deque.

18 deque :: version de plage d' effacement

Supprime un seul élément du deque.

19 deque :: avant

Renvoie une référence au premier élément du deque

20 deque :: get_allocator

Renvoie un allocateur associé à deque

21 deque :: insert version à élément unique

Étend le conteneur en insérant un nouvel élément à la position.

22 deque :: insérer la version de remplissage

Étend le conteneur en insérant un nouvel élément dans le conteneur.

23 deque :: insert range version

Étend le conteneur en insérant un nouvel élément dans le conteneur.

24 deque :: insérer la version de déplacement

Étend le conteneur en insérant un nouvel élément dans le conteneur.

25 deque :: insérer la version de la liste d'initialisation

Étend le conteneur en insérant un nouvel élément dans le conteneur.

26 deque :: max_size

Renvoie le nombre maximum d'éléments pouvant être détenus par deque.

27 deque :: operator = copie de la version

Attribuez de nouveaux contenus au deque en remplaçant les anciens et modifiez la taille si nécessaire.

28 deque :: operator = déplacer la version

Attribuez de nouveaux contenus au deque en remplaçant les anciens et modifiez la taille si nécessaire.

29 deque :: operator = version de la liste d'initialisation

Attribuez de nouveaux contenus au deque en remplaçant les anciens et modifiez la taille si nécessaire.

30 deque :: opérateur []

Renvoie une référence à l'élément présent à l'emplacement n .

31 deque :: pop_back

Supprime le dernier élément de deque et réduit la taille de deque de un.

32 deque :: pop_front

Supprime le premier élément de deque et réduit la taille de deque de un.

33 deque :: push_back

Insère un nouvel élément à la fin du deque et augmente la taille du deque de un.

34 deque :: push_back move version

Insère un nouvel élément à la fin du deque et augmente la taille du deque de un.

35 deque :: push_front

Insère un nouvel élément à l'avant du deque et augmente la taille du deque de un.

36 deque :: push_front move version

Insère un nouvel élément à l'avant du deque et augmente la taille du deque de un.

37 deque :: rbegin

Renvoie un itérateur inversé qui pointe vers le dernier élément du deque.

38 deque :: rend

Renvoie un itérateur inverse qui pointe vers l'extrémité inverse du deque.

39 deque :: redimensionner

Modifie la taille de deque.

40 deque :: redimensionner la version de la valeur

Modifie la taille de deque.

41 deque :: shrink_to_fit

Demande au conteneur de réduire sa capacité pour l'adapter à sa taille.

42 deque :: taille

Renvoie le nombre d'éléments présents dans le deque.

43 deque :: swap

Échange le contenu de deque avec le contenu d'un autre deque x .

Fonctions surchargées non membres

N ° Sr. Méthode et description
1 opérateur ==

Teste si deux deques sont égaux ou non.

2 opérateur! =

Teste si deux deques sont égaux ou non.

3 opérateur <

Teste si le premier deque est inférieur ou non à autre.

4 opérateur <=

Teste si le premier deque est inférieur ou égal à autre ou non.

5 opérateur>

Teste si le premier deque est supérieur ou non à autre.

6 opérateur> =

Teste si le premier deque est supérieur ou égal à autre ou non.

sept échanger

Échange le contenu de deux deque.