Heim > Backend-Entwicklung > C++ > Was sind die gemeinsamen Datenstrukturen in C++-Funktionsbibliotheken?

Was sind die gemeinsamen Datenstrukturen in C++-Funktionsbibliotheken?

WBOY
Freigeben: 2024-04-18 22:09:01
Original
463 Leute haben es durchsucht

Die C++-Standardfunktionsbibliothek stellt die folgenden häufig verwendeten Datenstrukturen bereit: Array: ein kontinuierlicher Speicherblock, der über den Index auf Elemente zugreift. Vektor: Ein Array mit dynamischer Größe, das automatisch wächst/schrumpft und effizientes Einfügen/Löschen/wahlfreien Zugriff ermöglicht. Verknüpfte Liste: Eine lineare Datenstruktur, in der Elemente in dynamisch zugewiesenen Knoten gespeichert werden, wobei jeder Knoten Daten und einen Zeiger auf den nächsten Knoten enthält. Stack: Eine Last-In-First-Out-Datenstruktur (LIFO), bei der Elemente oben über push() hinzugefügt und über pop() entfernt werden. Warteschlange: Eine First-In-First-Out-Datenstruktur (FIFO), bei der Elemente am Ende über enqueque() hinzugefügt und über dequeue() gelöscht werden.

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

Gemeinsame Datenstrukturen in der C++-Funktionsbibliothek

In der C++-Standardfunktionsbibliothek werden viele gängige Datenstrukturen für die effiziente Verwaltung und Verarbeitung von Daten bereitgestellt. Das Verständnis dieser Datenstrukturen ist von entscheidender Bedeutung, da es Ihnen hilft, Daten bei der Programmierung effizient zu organisieren und abzurufen.

1. Array

Ein Array ist ein zusammenhängender Speicherblock, der zum Speichern von Datenelementen desselben Datentyps verwendet wird. Der Zugriff auf Elemente erfolgt über den Index, beginnend bei 0. Das Array wird wie folgt deklariert und initialisiert:

int arr[5] = {1, 2, 3, 4, 5};
Nach dem Login kopieren

2. Vektor

Ein Vektor ist ein Array mit dynamischer Größe, das automatisch vergrößert und verkleinert werden kann, um Elemente aufzunehmen. Es bietet effiziente Einfüge-, Lösch- und Direktzugriffsvorgänge. Ein Vektor wird wie folgt deklariert:

vector<int> v = {1, 2, 3, 4, 5};
Nach dem Login kopieren

3. Verknüpfte Liste

Eine verknüpfte Liste ist eine lineare Datenstruktur, in der Datenelemente in dynamisch zugewiesenen Speicherblöcken, sogenannten Knoten, gespeichert werden. Jeder Knoten enthält Daten und einen Zeiger auf den nächsten Knoten. Verknüpfte Listen werden verwendet, um flexible und speichereffiziente Datenstrukturen zu erstellen.

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

Node* head = new Node{1, nullptr};
head->next = new Node{2, nullptr};
Nach dem Login kopieren

4. Stack

Der Stack ist eine Last-In-First-Out-Datenstruktur (LIFO). Elemente werden mit der Operation push() oben im Stapel hinzugefügt und mit der Operation pop() oben im Stapel entfernt. Der Stack dient der Verwaltung von Funktionsaufrufen und lokalen Variablen.

stack<int> s;
s.push(1);
s.push(2);
cout << s.top() << endl; // 2
s.pop();
Nach dem Login kopieren

5. Warteschlange

Eine Warteschlange ist eine First-In-First-Out-Datenstruktur (FIFO). Elemente werden mit der Operation enqueque() zum Ende der Warteschlange hinzugefügt und mit der Operation dequeue() aus dem Kopf der Warteschlange entfernt. Warteschlangen werden verwendet, um die Warteschlange von Prozessen und Aufgaben zu verwalten.

queue<int> q;
q.push(1);
q.push(2);
cout << q.front() << endl; // 1
q.pop();
Nach dem Login kopieren

Praktischer Fall: Verwendung von Vektoren zum Speichern von Schülernoten

#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;
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas sind die gemeinsamen Datenstrukturen in C++-Funktionsbibliotheken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage