📜  C++ STL教程

📅  最后修改于: 2020-12-17 05:18:20             🧑  作者: Mango


希望您已经了解了我们前面讨论的C++模板的概念。 C++ STL(标准模板库)是一组功能强大的C++模板类,可为通用类和函数提供模板,这些模板可实现许多流行且常用的算法和数据结构,例如向量,列表,队列和堆栈。

C++标准模板库的核心是以下三个结构良好的组件-

Sr.No Component & Description
1

Containers

Containers are used to manage collections of objects of a certain kind. There are several different types of containers like deque, list, vector, map etc.

2

Algorithms

Algorithms act on containers. They provide the means by which you will perform initialization, sorting, searching, and transforming of the contents of containers.

3

Iterators

Iterators are used to step through the elements of collections of objects. These collections may be containers or subsets of containers.

在下一章中,我们将在讨论C++标准库时讨论所有这三个C++ STL组件。现在,请记住,所有三个组件都具有一组丰富的预定义功能,这些功能可以帮助我们以非常轻松的方式完成复杂的任务。

让我们采用以下程序演示矢量容器(C++标准模板),该矢量容器与数组相似,不同之处在于它会自动处理自己的存储需求(一旦增长)-

#include 
#include 
using namespace std;
 
int main() {

   // create a vector to store int
   vector vec; 
   int i;

   // display the original size of vec
   cout << "vector size = " << vec.size() << endl;

   // push 5 values into the vector
   for(i = 0; i < 5; i++) {
      vec.push_back(i);
   }

   // display extended size of vec
   cout << "extended vector size = " << vec.size() << endl;

   // access 5 values from the vector
   for(i = 0; i < 5; i++) {
      cout << "value of vec [" << i << "] = " << vec[i] << endl;
   }

   // use iterator to access the values
   vector::iterator v = vec.begin();
   while( v != vec.end()) {
      cout << "value of v = " << *v << endl;
      v++;
   }

   return 0;
}

编译并执行上述代码后,将产生以下结果-

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

以下是与我们在以上示例中使用的各种功能相关的注意事项-

  • push_back()成员函数在向量的末尾插入值,并根据需要扩展其大小。

  • size()函数显示向量的大小。

  • 函数begin()将迭代器返回到向量的开始。

  • 函数end()将迭代器返回到向量的末尾。