Maison > développement back-end > C++ > Quelles sont les structures de données courantes dans les bibliothèques de fonctions C++ ?

Quelles sont les structures de données courantes dans les bibliothèques de fonctions C++ ?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2024-04-18 22:09:01
original
547 Les gens l'ont consulté

La bibliothèque de fonctions standard C++ fournit les structures de données suivantes couramment utilisées : Tableau : un bloc de mémoire continu, accédant aux éléments par index. Vecteur : un tableau de taille dynamique qui s'agrandit/rétrécit automatiquement, offrant une insertion/suppression/un accès aléatoire efficace. Liste chaînée : structure de données linéaire dans laquelle les éléments sont stockés dans des nœuds alloués dynamiquement, chaque nœud contenant des données et un pointeur vers le nœud suivant. Pile : une structure de données dernier entré, premier sorti (LIFO) avec des éléments ajoutés en haut via push() et supprimés via pop(). File d'attente : une structure de données premier entré, premier sorti (FIFO) avec des éléments ajoutés à la fin via enqueque() et supprimés via dequeue().

C++ 函数库中有哪些常见的数据结构?

Structures de données communes dans la bibliothèque de fonctions C++

Dans la bibliothèque de fonctions standard C++, de nombreuses structures de données communes sont fournies pour une gestion et un traitement efficaces des données. Comprendre ces structures de données est crucial car cela vous aide à organiser et à récupérer efficacement les données lors de la programmation.

1. Tableau

Un tableau est un bloc de mémoire contigu utilisé pour stocker des éléments de données du même type de données. Il accède aux éléments par index, à partir de 0. Le tableau est déclaré et initialisé comme suit :

int arr[5] = {1, 2, 3, 4, 5};
Copier après la connexion

2. Vecteur

Un vecteur est un tableau de taille dynamique qui peut automatiquement s'agrandir et se réduire pour accueillir des éléments. Il fournit des opérations efficaces d’insertion, de suppression et d’accès aléatoire. Un vecteur est déclaré comme suit :

vector<int> v = {1, 2, 3, 4, 5};
Copier après la connexion

3. Liste chaînée

Une liste chaînée est une structure de données linéaire dans laquelle les éléments de données sont stockés dans des blocs de mémoire alloués dynamiquement appelés nœuds. Chaque nœud contient des données et un pointeur vers le nœud suivant. Les listes chaînées sont utilisées pour créer des structures de données flexibles et économes en mémoire.

struct Node {
  int data;
  Node* next;
};

Node* head = new Node{1, nullptr};
head->next = new Node{2, nullptr};
Copier après la connexion

4. Stack

La pile est une structure de données dernier entré, premier sorti (LIFO). Les éléments sont ajoutés en haut de la pile à l'aide de l'opération push() et supprimés du haut de la pile à l'aide de l'opération pop(). La pile est utilisée pour gérer les appels de fonctions et les variables locales.

stack<int> s;
s.push(1);
s.push(2);
cout << s.top() << endl; // 2
s.pop();
Copier après la connexion

5. Queue

Une file d'attente est une structure de données premier entré, premier sorti (FIFO). Les éléments sont ajoutés à la queue de la file d'attente à l'aide de l'opération enqueque() et supprimés de la tête de la file d'attente à l'aide de l'opération dequeue(). Les files d'attente sont utilisées pour gérer la file d'attente des processus et des tâches.

queue<int> q;
q.push(1);
q.push(2);
cout << q.front() << endl; // 1
q.pop();
Copier après la connexion

Cas pratique : utiliser des vecteurs pour stocker les notes des élèves

#include <vector>

int main() {
  // 创建一个向量来存储学生成绩
  vector<double> grades;

  // 添加学生成绩
  grades.push_back(90.5);
  grades.push_back(85.0);
  grades.push_back(78.2);

  // 计算平均成绩
  double sum = 0;
  for (double grade : grades) {
    sum += grade;
  }
  double average = sum / grades.size();

  // 输出平均成绩
  cout << "平均成绩:" << average << endl;

  return 0;
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal