Fonction push_back de <list> en C++
Parmi les nombreux conteneurs,list(Liste doublement chaînée) est une structure de données avec insertion et suppression efficaces, etpush_backest la fonction clé pour ajouter des éléments à la fin de la liste chaînée.
push_backest une fonction membre utilisée pourla liste chaînée (list)definAjouter un nouvel élément.
push_backimplémente une liste chaînéeà croissance dynamique, vous n'avez pas besoin de spécifier à l'avance la taille finale du conteneur, et pouvez ajouter des éléments à tout moment et n'importe où selon les besoins pendant l'exécution du programme.
Définitions de mots: push, c'est pousser,backsignifie « l'arrière », donc ensemble cela signifie « pousser vers l'arrière », ce qui est très imagé.
Syntaxe de base et paramètres
push_backest une fonction membre des classes conteneurs, donc vous devez d'abord avoir un objet conteneur, puis utiliser l'opérateur point.pour l'appeler.
Format de syntaxe
void push_back(const T& value); void push_back(T&& value); // C++11 之后(支持右值)
Description des paramètres
- Paramètre:
value- Type : cohérent avec le type d'élément spécifié lors de la définition du conteneur, ou une valeur pouvant être convertie en ce type.
- Description : la valeur que vous souhaitez ajouter à la fin du conteneur. Elle peut être une variable, un littéral (tel que
10,"hello"), ou le résultat d'une expression.
Description de la fonction
- Valeur de retour:
void(aucune valeur de retour). Son but est purement « d'ajouter un élément » ; une fois l'ajout terminé, la fonction se termine. - Effet: du conteneur
size()(nombre actuel d'éléments) augmentera de 1. Le nouvel élément devient le dernier élément de la liste chaînée.
Exemple
Maîtrisons-le parfaitement à travers une série d'exemples, du simple au complexe :push_backUtilisation.
Exemple 1 : Utilisation de base - gestion des entiers
Exemple
#include <list> // 1. Il faut inclure le fichier d'en-tête list
int main() {
// 2. Créer une liste vide pour stocker des entiers
std::list<int> numbers;
std::cout << "Au départ, la taille de la liste est : " << numbers.size() << std::endl;
// 3. Utiliser push_back pour ajouter des éléments
numbers.push_back(10); // Ajouter l'entier 10 à la fin
numbers.push_back(20); // Ajouter 20 après 10
numbers.push_back(30); // Ajouter 30 après 20
std::cout << "Après l'ajout, la taille de la liste est : " << numbers.size() << std::endl;
// 4. Parcourir et afficher tous les éléments
std::cout << "Les éléments de la liste sont : ";
for(int n : numbers) {
std::cout << n << " ";
}
std::cout << std::endl;
return 0;
}
Sortie attendue :
初始时,list的大小是: 0 添加后,list的大小是: 3 list中的元素是: 10 20 30
Analyse du code :
#include <list>est d'utiliserlistLe principe d'un conteneur.std::list<int> numbers;Créé un nomménumbersdu videlist, qui stockera plus tardintdes entiers de type.- trois fois
push_backappel, séquentiellement10,20,30ajouter ànumbersfin. L'ordre d'ajout est celui des éléments danslistl'ordre final dans numbers.size()Renvoie le nombre actuel d'éléments.
Exemple 2 : Gestion des chaînes
listIl peut stocker non seulement des nombres, mais aussi des chaînes, des types personnalisés et tout autre type de données.
Exemple
#include <list>
#include <string>
int main() {
// Créer une liste qui stocke std::string
std::list<std::string> tasks;
// Utiliser push_back pour ajouter des tâches à faire
tasks.push_back("Apprendre la liste C++");
tasks.push_back("Faire les devoirs");
tasks.push_back("Lire la documentation technique");
std::cout << "Tâches à faire aujourd'hui (" << tasks.size() << " tâches) :" << std::endl;
for(const auto& task : tasks) {
std::cout << "- " << task << std::endl;
}
return 0;
}
Sortie attendue :
今日待办事项 (3 项): - 学习 C++ list - 写作业 - 阅读技术文档
Analyse du code :
std::list<std::string>déclare le type d'élément commestd::stringcontainer.push_backLe paramètre est un littéral de chaîne.
Exemple 3 : Utilisation avec push_front
push_backetpush_frontpeuvent être utilisés ensemble pour construire une liste chaînée.
Exemple
#include <list>
int main() {
std::list<int> data;
// D'abord, ajouter en tête
data.push_front(30);
data.push_front(20);
data.push_front(10);
// Ensuite, ajouter en queue
data.push_back(40);
data.push_back(50);
std::cout << "Éléments : ";
for(int n : data) {
std::cout << n << " ";
}
std::cout << std::endl;
return 0;
}
Sortie attendue :
元素: 10 20 30 40 50
Analyse du code :
- Première utilisation
push_frontAjoutez 10, 20, 30 en tête - Ensuite, utilisez
push_backAjoutez 40, 50 en queue - L'ordre final est 10 -> 20 -> 30 -> 40 -> 50
autres extensions