Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk menggunakan Perpustakaan Templat C++ (STL)?

Bagaimana untuk menggunakan Perpustakaan Templat C++ (STL)?

WBOY
WBOYasal
2024-06-03 15:45:08390semak imbas

C++ Standard Template Library (STL) ialah satu set bekas, algoritma dan iterator yang boleh digunakan untuk mengurus dan memanipulasi data. Bekas STL (seperti vektor, senarai, peta dan set) menyediakan pengurusan memori automatik, keselamatan jenis dan pelbagai operasi. Algoritma STL melaksanakan operasi biasa seperti pengisihan, pencarian dan transformasi. Iterator STL membenarkan melintasi elemen dalam bekas. Gunakan ciri ini bersama-sama untuk menulis kod yang cekap dan mudah diselenggara, seperti menyusun dan mengumpulkan gred pelajar.

Bagaimana untuk menggunakan Perpustakaan Templat C++ (STL)?

Cara menggunakan Pustaka Templat Standard (STL) C++

STL ialah set bekas, algoritma dan iterator yang berkuasa dalam perpustakaan standard C++ yang boleh membantu anda menulis kod yang cekap dan boleh diselenggara. Dalam tutorial ini, kami akan meneroka cara menggunakan beberapa ciri asas STL.

Bekas STL

Bekas STL digunakan untuk menyimpan dan mengurus data, sama seperti tatasusunan. Walau bagaimanapun, bekas menyediakan ciri tambahan seperti:

  • Pengurusan Memori Automatik: Bekas STL memperuntukkan secara automatik dan membebaskan memori untuk menyimpan data, menghapuskan keperluan untuk pengurusan manual.
  • Keselamatan jenis: Bekas hanya membenarkan penyimpanan jenis data tertentu, memastikan keselamatan dan kebolehpercayaan kod.
  • Berbilang operasi: Bekas menyediakan satu siri operasi seperti memasukkan, memadam, mencari dan menyusun.

Bekas STL yang biasa digunakan termasuk:

  • vektor: Tatasusunan bersaiz berubah-ubah yang menyimpan elemen data daripada jenis yang sama.
  • senarai: Senarai berganda yang menyokong pemasukan dan pemadaman pantas.
  • peta: Bekas bersekutu yang menyimpan pasangan nilai kunci dan mengisihnya mengikut kekunci.
  • set: Bekas bersekutu yang menyimpan kunci unik dan diisih mengikut kunci.

Mencipta Bekas STL

Untuk mencipta bekas STL, anda hanya perlu menentukan jenis dan jenis elemennya. Contohnya, untuk mencipta vektor, anda boleh menggunakan sintaks berikut:

std::vector<int> myVector;

Menggunakan Bekas STL

Selepas anda mencipta bekas STL, anda boleh memanipulasinya menggunakan satu siri operasi. Sebagai contoh, untuk menambah elemen pada vektor, anda boleh menggunakan kaedah push_back(): push_back() 方法:

myVector.push_back(10);

要访问容器中的元素,您可以使用其索引,类似于数组:

int firstElement = myVector[0];

STL 算法

STL 算法提供了一组内置函数来执行对容器的常用操作,例如排序、查找和转换。例如,要对 vector 进行排序,可以使用 sort() 算法:

std::sort(myVector.begin(), myVector.end());

STL 迭代器

STL 迭代器允许您遍历容器中的元素。迭代器是一个指向容器中元素的对象,并且它可以指向容器中的下一个元素。例如,要遍历 vector,您可以使用 begin()end() 方法获取其迭代器,然后使用 ++ 运算符递增迭代器:

for (std::vector<int>::iterator it = myVector.begin(); it != myVector.end(); ++it) {
  std::cout << *it << std::endl;
}

实战案例

以下是如何在实际场景中使用 STL 的一个示例:

我们有一个学生成绩列表,我们需要根据成绩对他们进行排序和分组。我们可以使用 STL 的 mapsort 算法来实现此目的:

std::map<int, std::vector<std::string>> students;

// 添加学生和成绩
students[90] = {"John", "Mary"};
students[80] = {"Alice", "Bob"};

// 对成绩进行排序
std::map<int, std::vector<std::string>> sortedStudents(students.begin(), students.end());

// 分组学生
for (const auto& [grade, students] : sortedStudents) {
  std::cout << "Grade: " << grade << std::endl;
  for (const auto& student : students) {
    std::cout << "- " << student << std::endl;
  }
}

此代码创建了一个 map 来存储学生的分数和姓名,并使用 std::sort()rrreee

Untuk mengakses elemen dalam bekas, anda boleh menggunakan indeksnya, serupa dengan tatasusunan: 🎜 rrreee🎜🎜Algoritma STL🎜 🎜🎜Algoritma STL menyediakan satu set fungsi terbina dalam untuk melaksanakan operasi biasa pada bekas, seperti menyusun, mencari dan mengubah. Sebagai contoh, untuk mengisih vektor, anda boleh menggunakan algoritma sort(): 🎜rrreee🎜🎜STL Iterators🎜🎜🎜STL Iterators membolehkan anda mengulangi elemen dalam bekas. Iterator ialah objek yang menunjuk ke elemen dalam bekas, dan ia boleh menunjuk ke elemen seterusnya dalam bekas. Contohnya, untuk lelaran ke atas vektor, anda boleh menggunakan kaedah begin() dan end() untuk mendapatkan iteratornya dan kemudian menambahnya menggunakan ++ operator Iterator: 🎜rrreee🎜🎜Contoh Praktikal🎜🎜🎜Berikut ialah contoh cara menggunakan STL dalam senario kehidupan sebenar: 🎜🎜Kami mempunyai senarai gred pelajar dan kami perlu menyusun dan mengumpulkannya berdasarkan gred mereka. Kita boleh menggunakan algoritma map dan sort STL untuk mencapai ini: 🎜rrreee🎜Kod ini mencipta peta untuk menyimpan markah dan nama pelajar, dan menggunakan std: :sort() Isih peta. Ia kemudian melelang melalui peta yang diisih dan mencetak senarai pelajar untuk setiap kumpulan. 🎜

Atas ialah kandungan terperinci Bagaimana untuk menggunakan Perpustakaan Templat C++ (STL)?. 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