Fonctions de la liste C ++

Fonctions de la liste C ++
«Les listes sont des conteneurs pour des séquences qui permettent des opérations d'insert en temps constant et effacent les opérations partout dans la séquence ainsi que l'itération dans les deux sens. Les conteneurs de liste sont implémentés sous forme de listes liées à double.

La principale distinction entre eux et les objets de liste avant est que les premiers sont des listes à liaison simple, ce qui signifie qu'ils ne peuvent être itérés qu'en échange d'être un peu plus petits et plus efficaces."

Liste C ++

En conséquence, un vecteur ne conserve pas ses éléments en mémoire contigu comme une liste. Puisqu'il faut beaucoup de temps pour déplacer toutes les informations, l'insertion et la suppression au milieu d'un vecteur sont assez chers. Liste liée, qui utilise un conteneur de liste dans son implémentation, résout ce problème. La liste enregistre les éléments sur une mémoire contigu, mais les vecteurs stocke sur une mémoire non contiguë. Comme il faut beaucoup de temps pour déplacer tous les éléments, l'insertion et la suppression dans le vecteur sont assez chères.

Les listes fournissent une communication bidirectionnelle et offrent un moyen efficace de réaliser des opérations d'insertion et de suppression.

Types de la liste

Liste unique

Il s'agit du type de liste lié le plus simple, avec chaque nœud comprenant des données et un pointeur vers le nœud après le même type de données. Puisqu'il a un pointeur vers le nœud suivant, le nœud stocke l'adresse de ce nœud dans la séquence. Les données ne peuvent être traversées que dans une manière dans une seule liste liée.

Liste de double liaison

Les données et le pointeur supplémentaire, connu sous le nom de pointeur précédent qui est présent dans une liste individuelle, sont également présents dans une liste doublement liée. Le lien précédent du premier nœud dans la liste pointe vers Null, tout comme le nœud final du nœud suivant de la liste.

Liste double circulaire

Une liste liée à la circulaire a tous ses nœuds connectés en cercle. Le dernier nul est absent. Il existe deux types de listes liées circulaires: une seule circulaire et double circulaire.

Avantages de la liste C ++

Étant donné que la taille de la liste liée fluctue pendant son utilisation, il n'y a pas de perte de mémoire.

Il n'y a pas de perte de mémoire car la taille de la liste liée change car elle est utilisée.

  • Mise en œuvre: Les structures de données linéaires comme les piles et les files d'attente sont fréquemment implémentées à l'aide de listes connectées.
  • Services d'insertion et de suppression: La liste connectée simplifie considérablement l'insertion et la suppression. Il n'est pas nécessaire de déplacer un élément après avoir été ajouté ou supprimé; Au lieu de cela, l'adresse du pointeur suivant doit simplement être modifiée.

Fonctions de la liste C ++

Liste :: Front ()

La liste de fonctions C ++ STL intégrée :: Front renvoie une référence à la première entrée dans un conteneur de liste.

Syntaxe:

# liste de noms.devant()

Paramètres:

Cette fonction renvoie simplement une référence à la première entrée dans le conteneur de liste; il n'accepte aucun paramètre.

Valeur de retour: le premier élément du conteneur de liste est directement référencé par cette fonction.

Exception: Lorsqu'il est utilisé avec un conteneur de liste vide, cette fonction génère un comportement non défini.

Liste Back ()

Une référence directe à l'élément final du conteneur de liste est renvoyé par la méthode List :: back () dans le C ++ STL. Parce que List :: end () ne fournit qu'un itérateur à la dernière entrée, cette fonction diffère de celle.

Syntaxe:

# liste de noms.dos()

Paramètres:

Il n'y a pas de paramètre; renvoyer la valeur. L'élément final de la liste de démonstration de conteneurs de liste est directement référencé par cette fonction.

Exception: il n'y a pas une telle exception dans cette méthode, mais l'invoquer avec un conteneur de liste vide fait que C ++ se comporte de manière indéfinissable.

Liste :: push_front ()

La méthode C ++ STL intégrée Front () est utilisée pour insérer un élément juste avant l'élément supérieur dans un conteneur de liste. De plus, la taille du conteneur est augmentée par cette fonction par 1.

Syntaxe:

# liste de noms.push_front (valeur du type de données)

Paramètres:

Cette option désigne l'élément qui doit être ajouté en haut de la liste.

Valeur de retour:

Rien n'est renvoyé par cette fonction.

Liste: push_back ()

Pour insérer un nouvel élément dans un conteneur de liste existant, utilisez la fonction List: Push Back () dans le C ++ STL. Il ajoute l'élément à ajouter au conteneur de liste en le prenant comme argument.

Syntaxe:

# liste de noms.push_back (valeur)

Paramètres:

Il n'y a qu'un seul paramètre nécessaire pour cette fonction. Cela fait référence à l'élément de nom de liste qui doit être inséré.

Type de retour: le type de retour de cette fonction est vide, et il n'a pas de valeur de retour.

Liste :: pop_front ()

L'élément avant d'un conteneur de liste peut être supprimé à l'aide de la liste de fonctions C ++ STL intégrée :: Pop Front (). En conséquence, cette fonction réduit la taille du conteneur par 1 tout en supprimant l'entrée du haut de la liste.

Syntaxe:

# liste de noms.pop_front ();

Valeur de retour:

Rien n'est renvoyé par cette fonction.

Liste :: pop_back ()

Utilisez la liste de méthodes C ++ STL intégrée :: Remarquez pour supprimer un élément du dos d'un conteneur de liste. En d'autres termes, le dernier élément d'un conteneur de liste est supprimé par cette fonction. La suppression d'un membre de la fin de la liste, cette fonction réduit la taille du conteneur de 1.

Syntaxe:

# liste de noms.pop_back ();

Valeur de retour:

Rien n'est renvoyé par cette fonction.

Liste :: begin ()

Cela le distingue de la fonction avant ().

Syntaxe:

# liste de noms.commencer()

Paramètres:

Aucun paramètre n'est passé.

Liste :: Rend ()

La méthode de liste intégrée :: Rend () dans le C ++ STL renvoie un itérateur inversé qui pointe vers un emplacement avant le début de la liste.

Syntaxe:

# liste de noms.déchirer()

Valeur de retour:

Un itérateur inversé pointe vers un emplacement avant le démarrage de la liste.

Liste :: cbegin ()

La méthode C ++ STL intégrée CBegin () renvoie un itérateur d'accès aléatoire constant qui pointe vers le début de la liste.

Syntaxe:

# liste de noms.cbegin ()

Liste :: cend ()

Un itérateur d'accès aléatoire constant qui pointe vers la fin de la liste est renvoyé par la méthode C ++ STL intégrée Cennd ().

Syntaxe:

# liste de noms.cend ()

Liste :: crbegin ()

La méthode C ++ STL intégrée Crbegin () renvoie un itérateur inverse constant qui conduit à l'élément final de la liste ou au début inversé du conteneur. En raison de la nature constante de l'itérateur, les éléments ne peuvent pas être modifiés ou modifiés.

Syntaxe:

# liste de noms.crbegin ()

Liste :: Crend ()

La méthode C ++ STL intégrée Renvoie un itérateur inverse constant lié à l'élément #hypothétique qui porte avant le premier élément de la liste ou l'extrémité inverse de la liste. L'itérateur est constant; Par conséquent, les éléments ne peuvent pas être modifiés ou mis à jour.

Syntaxe:

# liste de noms.Crend ()

Liste :: vide ()

Pour vérifier si un certain conteneur de liste est vide ou non, utilisez la liste de fonctions C ++ STL intégrée :: vide (). Cette fonction ne modifie pas la liste; il détermine simplement si une liste est vide ou non ou si sa taille est 0 ou non.

Syntaxe:

# liste de noms.vide()

Liste :: insert ()

Pour insérer des entrées dans une liste à tout moment, utilisez la fonction List :: insert (). Positionnez le nombre d'éléments à insérer et la valeur à insérer sont les trois paramètres de cette fonction. Lorsqu'il n'est pas spécifié, le nombre d'éléments est défini sur un par défaut.

Syntaxe:

# insert (pos_iter, ele_num, ele)

Liste :: ERASE ()

La fonction C ++ STL intégrée Effacer () est utilisée pour supprimer les éléments d'un conteneur de liste. Le conteneur de liste fourni peut être utilisé pour supprimer un seul élément ou un groupe d'éléments en utilisant cette fonction.

Syntaxe:

# iterator list_name.Effacer (position itérateur)

Paramètres:

Nous passons deux paramètres.

Position: Lorsqu'un seul élément doit être supprimé à l'aide de la fonction, ce paramètre est utilisé. Ce paramètre fait référence à un itérateur qui identifie l'élément du conteneur de liste qui doit être supprimé.

Premièrement, dernier: les termes «paramètre d'abord» et «paramètre dernier» se réfèrent à l'itérateur pointant vers les premier et derniers éléments de la plage, respectivement, qui doivent être supprimés. Cela élimine tous les éléments de la gamme, y compris l'élément que l'itérateur a signalé en premier, mais à l'exclusion de l'élément que l'itérateur a indiqué pour durer.

List :: Assign ()

Pour attribuer des valeurs à une liste, utilisez la méthode C ++ STL intégrée Assignez ().

Syntaxe:

# liste de noms.attribuer (compter, valeur)

Paramètres:

Compte: le nombre de valeurs à ajouter au nom de la liste.

Valeur: en commençant par l'élément initial, cette valeur se verra attribuer un certain nombre de fois. Si la liste a déjà des éléments, l'élément fourni dans la valeur du paramètre prendra sa place. Le type de données de ce paramètre doit être le même que le type de données du nom de la liste.

Liste :: Supout ()

Il élimine les éléments qui évaluent une valeur. Il prend une valeur en tant qu'entrée et supprime les éléments du conteneur de liste dont les valeurs correspondent à la valeur transmise en tant que paramètre de la fonction.

Syntaxe:

# liste de noms.Retirer (Val)

Liste :: Supout ()

La méthode supprime () est utilisée pour éliminer toutes les entrées d'une liste qui correspondent à une valeur spécifiée comme paramètre de fonction.

Syntaxe:

# liste de noms.supprimer (valeur)

Liste :: Supout_if ()

La fonction supprime if () est utilisée pour éliminer toutes les entrées d'une liste qui satisfait une condition ou un prédicat qui est envoyé comme argument.

Syntaxe:

# liste de noms.supprimer_if (prédicat)

Liste :: Reverse ()

Un conteneur de liste peut être inversé à l'aide de la méthode intégrée Reverse () dans le C ++ STL. Il modifie l'ordre de la liste des éléments de conteneur.

Syntaxe:

# liste de noms.inverse()

Liste :: size ()

En d'autres termes, il est utilisé pour déterminer la taille du conteneur de liste.

Syntaxe:

# liste de noms.taille();

Liste :: redimensive ()

Il ajuste la taille du conteneur de liste pour s'adapter exactement aux éléments «n» lorsqu'on lui donne le numéro «n» en tant que paramètre.

Syntaxe:

# Liste de noms.redimensive (int n, value_type val)

Liste :: Sort ()

Les éléments du conteneur peuvent être triés en les déplaçant en utilisant la fonction tri ().

Syntaxe:

# liste de noms.trier()

List :: max_size ()

Max size () renvoie le plus d'éléments qu'un conteneur de liste peut accueillir.

Syntaxe:

# liste de noms.taille max()

Liste :: unique ()

Élimine tous les membres consécutifs de la liste qui sont des doublons. Il fonctionne uniquement avec des listes triées.

Syntaxe:

# liste de noms.UNIQUE (nom binarypredicate)

Liste :: swap ()

En utilisant cette fonction, le contenu de deux listes de la même taille et du même type peut être échangée.

Syntaxe:

# listname1.swap (listName2)

List :: clear ()

La taille du conteneur de liste est réduite à 0 lorsque tous les éléments sont supprimés à l'aide de la fonction clear ().

Syntaxe:

# liste de noms.clair()

List :: opérateur =

En utilisant cet opérateur, le contenu existant du conteneur est remplacé et compte tenu de nouvelles affectations. De plus, il ajuste la taille pour s'adapter au nouveau contenu.

Syntaxe:

# listName1 = (listName2)

Dans cet article, nous expliquerons différentes illustrations des fonctions de liste.

Exemple n ° 1

Ici, nous allons voir comment fonctionnent les fonctions de liste.

#inclure
#inclure
#inclure
int main()
std :: listmy_list = 50, 10, 30;
pour (int y: my_list)
std :: cout<< y << '\n';

Dans ce code, nous incorporons les fichiers d'en-tête, et . Ensuite, nous appelons la fonction principale (). Commençons le codage dans la fonction principale (). Dans la fonction Main (), ajouter ma liste et passer les différentes valeurs. Utilisez la boucle «pour» et initialisez la variable «y» et ajoutez la valeur de la variable «my_list».

Exemple n ° 2

Dans ce cas, nous voyons comment diminuer la valeur de l'itérateur en utilisant les fonctions de liste.

#inclure
#inclure
Utilisation de Namespace Std;
int main (void)
listl;
list l0 = 0, 0, 0;
Liste L9 (L0.begin (), l0.fin());
Liste L15 (Move (L0));
couter<< "Size of list 0: " << l0.size() <couter<< "List 9 contents: " <pour (auto it = l9.commencer(); il != L9.fin(); ++ it)
couter<< *it <couter<< "List 15 contents: " <pour (auto it = l15.commencer(); il != L15.fin(); ++ it)
couter<< *it <retour 0;

Ici, nous ajoutons des fichiers d'en-tête, . Le fichier d'en-tête traite de l'utilisation des fonctions de liste C ++. Alors nous utiliserons l'espace de noms. Parallèlement à cela, nous avons appelé la fonction principale (). Tout d'abord, nous avons initialisé la liste; Ensuite, nous avons passé les valeurs. Nous ajoutons la fonction début () pour en tirer les 9 éléments. Ensuite, nous ajoutons Move (), 15 éléments de cette fonction Move (). Nous utilisons «cout» pour imprimer la déclaration «Taille de la liste 0». Et le prochain «cout» imprime la déclaration «Liste 15 Contenu». En fin de compte, nous utilisons la boucle «pour», puis la valeur de l'itérateur diminue après tout cette commande «return0» est entrée.

Nous acquérons ce type de résultat après avoir exécuté le code susmentionné.

Conclusion

Tout d'abord, nous avons parlé des fonctions de liste C ++. Ensuite, nous observons que plusieurs fonctions C ++ s'appliquent à la liste. Nous avons défini différentes fonctions de liste C ++ et aussi leur syntaxe. Dans cet article, nous avons exécuté divers codes contenant des fonctions de liste C ++. Dans la première illustration, nous utilisons une liste liée et passons les paramètres. Dans le deuxième exemple, nous appliquons la liste des fonctions et passons les paramètres dans chaque fonction.