Maison  >  Article  >  développement back-end  >  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++ ?

WBOY
WBOYoriginal
2024-04-18 22:09:01398parcourir

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};

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};

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};

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();

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();

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;
}

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!

Déclaration:
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