Tutorial C++ STL


Dalam bab sebelum ini, kami telah mempelajari konsep templat C++. C++ STL (Perpustakaan Templat Standard) ialah satu set kelas templat C++ yang berkuasa yang menyediakan kelas dan fungsi templat biasa ini dan fungsi templat ini boleh melaksanakan pelbagai algoritma dan struktur data yang popular dan biasa digunakan, seperti vektor, senarai terpaut dan. beratur.

Inti Perpustakaan Templat Standard C++ merangkumi tiga komponen berikut:

组件描述
容器(Containers)容器是用来管理某一类对象的集合。C++ 提供了各种不同类型的容器,比如 deque、list、vector、map 等。
算法(Algorithms)算法作用于容器。它们提供了执行各种操作的方式,包括对容器内容执行初始化、排序、搜索和转换等操作。
迭代器(iterators)迭代器用于遍历对象集合的元素。这些集合可能是容器,也可能是容器的子集。

Ketiga-tiga komponen ini semuanya datang dengan fungsi pratakrif yang kaya untuk membantu kami mengendalikan tugas yang rumit dengan cara yang mudah.

Atur cara berikut menunjukkan bekas vektor (templat standard C++), yang hampir sama dengan tatasusunan Satu-satunya perbezaan ialah vektor secara automatik mengendalikan keperluan storan sendiri apabila ia perlu dikembangkan:

#include <iostream>
#include <vector>
using namespace std;
 
int main()
{
   // 创建一个向量存储 int
   vector<int> vec; 
   int i;

   // 显示 vec 的原始大小
   cout << "vector size = " << vec.size() << endl;

   // 推入 5 个值到向量中
   for(i = 0; i < 5; i++){
      vec.push_back(i);
   }

   // 显示 vec 扩展后的大小
   cout << "extended vector size = " << vec.size() << endl;

   // 访问向量中的 5 个值
   for(i = 0; i < 5; i++){
      cout << "value of vec [" << i << "] = " << vec[i] << endl;
   }

   // 使用迭代器 iterator 访问值
   vector<int>::iterator v = vec.begin();
   while( v != vec.end()) {
      cout << "value of v = " << *v << endl;
      v++;
   }

   return 0;
}

Apabila kod di atas disusun dan dilaksanakan, ia akan menghasilkan keputusan berikut:

vector size = 0
extended vector size = 5
value of vec [0] = 0
value of vec [1] = 1
value of vec [2] = 2
value of vec [3] = 3
value of vec [4] = 4
value of v = 0
value of v = 1
value of v = 2
value of v = 3
value of v = 4

Terdapat beberapa perkara yang perlu diberi perhatian tentang pelbagai fungsi yang digunakan dalam contoh di atas:

< The 🎜>
  • fungsi ahli push_back( ) memasukkan nilai pada penghujung vektor, memanjangkan saiz vektor jika perlu.

  • fungsi saiz( ) memaparkan saiz vektor.

  • fungsi begin( ) mengembalikan iterator yang menunjuk ke permulaan vektor.

  • fungsi end( ) mengembalikan iterator yang menunjuk ke hujung vektor.