Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah struktur data biasa dalam pustaka fungsi C++?

Apakah struktur data biasa dalam pustaka fungsi C++?

WBOY
WBOYasal
2024-04-18 22:09:01404semak imbas

Pustaka fungsi standard C++ menyediakan struktur data yang biasa digunakan berikut: Tatasusunan: blok memori berterusan, mengakses elemen mengikut indeks. Vektor: Tatasusunan bersaiz dinamik yang berkembang/mengecut secara automatik, memberikan akses sisipan/pemadaman/rawak yang cekap. Senarai terpaut: Struktur data linear di mana elemen disimpan dalam nod yang diperuntukkan secara dinamik, setiap nod mengandungi data dan penunjuk ke nod seterusnya. Tindanan: Struktur data masuk dahulu keluar (LIFO) yang terakhir dengan elemen ditambahkan pada bahagian atas melalui push() dan dialih keluar melalui pop(). Baris gilir: Struktur data masuk dahulu keluar dahulu (FIFO) dengan elemen ditambah pada penghujung melalui enqueque() dan dipadamkan melalui dequeue().

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

Struktur data biasa dalam perpustakaan fungsi C++

Dalam perpustakaan fungsi standard C++, banyak struktur data biasa disediakan untuk pengurusan dan pemprosesan data yang cekap. Memahami struktur data ini adalah penting kerana ia membantu anda menyusun dan mendapatkan data dengan cekap dalam pengaturcaraan.

1. Tatasusunan

Susun atur ialah blok memori bersebelahan yang digunakan untuk menyimpan elemen data daripada jenis data yang sama. Ia mengakses elemen mengikut indeks, bermula dari 0. Tatasusunan diisytiharkan dan dimulakan seperti berikut:

int arr[5] = {1, 2, 3, 4, 5};

2 Vektor

Vektor ialah tatasusunan bersaiz dinamik yang boleh berkembang dan mengecut secara automatik untuk menampung elemen. Ia menyediakan operasi pemasukan, pemadaman dan capaian rawak yang cekap. Vektor diisytiharkan seperti berikut:

vector<int> v = {1, 2, 3, 4, 5};

3 Senarai Terpaut

Senarai terpaut ialah struktur data linear di mana elemen data disimpan dalam blok memori yang diperuntukkan secara dinamik dipanggil nod. Setiap nod mengandungi data dan penunjuk ke nod seterusnya. Senarai terpaut digunakan untuk mencipta struktur data yang fleksibel dan cekap memori.

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

Node* head = new Node{1, nullptr};
head->next = new Node{2, nullptr};

4. Timbunan

Timbunan ialah struktur data masuk dahulu (LIFO). Elemen ditambah pada bahagian atas tindanan menggunakan operasi push() dan dikeluarkan dari bahagian atas tindanan menggunakan operasi pop(). Tindanan digunakan untuk mengurus panggilan fungsi dan pembolehubah setempat.

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

5. Baris gilir

Baris gilir ialah struktur data masuk dahulu, keluar dahulu (FIFO). Elemen ditambah pada ekor baris gilir menggunakan operasi enqueque() dan dikeluarkan daripada kepala baris gilir menggunakan operasi dequeue(). Baris gilir digunakan untuk mengurus baris gilir proses dan tugasan.

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

Kes praktikal: menggunakan vektor untuk menyimpan gred pelajar

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

Atas ialah kandungan terperinci Apakah struktur data biasa dalam pustaka fungsi C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn