The C++ Standard Template Library (STL) is a set of containers, algorithms, and iterators that can be used to manage and manipulate data. STL containers (such as vector, list, map, and set) provide automatic memory management, type safety, and various operations. STL algorithms perform common operations such as sorting, searching, and transformations. STL iterators allow traversing elements in a container. Use these features together to write efficient, easy-to-maintain code, such as sorting and grouping student grades.
How to use the C++ Standard Template Library (STL)
STL is a set of powerful containers and algorithms in the C++ standard library and iterators to help you write efficient, maintainable code. In this tutorial, we'll explore how to use some basic features of STL.
STL Container
STL container is used to store and manage data, very similar to an array. However, containers provide additional features, such as:
Commonly used STL containers include:
Creating an STL Container
To create an STL container, you only need to specify its type and element type. For example, to create a vector, you would use the following syntax:
std::vector<int> myVector;
Using STL Containers
After you create an STL container, you can manipulate it using a series of operations. For example, to add an element to a vector, you use the push_back()
method:
myVector.push_back(10);
To access an element in a container, you use its index, similar to an array:
int firstElement = myVector[0];
STL Algorithms
The STL algorithms provide a set of built-in functions to perform common operations on containers, such as sorting, searching, and transforming. For example, to sort a vector, you can use the sort()
algorithm:
std::sort(myVector.begin(), myVector.end());
STL Iterator
STL iterator allows you to iterate over a container elements in . An iterator is an object that points to an element in a container, and it can point to the next element in the container. For example, to iterate over a vector, you can get its iterator using the begin()
and end()
methods, and then increment the iterator using the ++
operator:
for (std::vector<int>::iterator it = myVector.begin(); it != myVector.end(); ++it) { std::cout << *it << std::endl; }
Practical Case
The following is an example of how to use STL in a practical scenario:
We have a list of student grades, and we need to Grades sort and group them. We can use STL's map
and sort
algorithms to achieve this:
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; } }
This code creates a map to store the student's scores and names, and uses std::sort()
Sort the map. It then iterates through the sorted map and prints out the list of students for each group.
The above is the detailed content of How to use the C++ Template Library (STL)?. For more information, please follow other related articles on the PHP Chinese website!