什么是 STL 中的容器?
原文:https://www.studytonight.com/cpp/stl/stl-overview-of-containers
STL 中的容器库给了我们容器,用最简单的话来说,可以描述为用于包含数据的对象,或者更确切地说是对象的集合。容器帮助我们非常容易地实现和复制简单和复杂的数据结构,如数组、列表、树、关联数组等等。
容器被实现为通用类模板,这意味着一个容器可以用来容纳不同种类的对象,并且它们本质上是动态的!
以下是一些常见的容器:
- 向量:复制数组
- 队列:复制队列
- 堆叠:复制堆叠
- 优先级队列:复制堆
- 列表:复制链表
- 设置:复制树木
- 映射:关联数组
STL 中容器的分类
容器分为四类:
- 序列容器:用于实现数组(array)和链表(list)等本质上是序列的数据结构。
- 关联容器:用于实现映射、集合等排序后的数据结构。
- 无序关联容器:用于实现无序的数据结构。
- 容器适配器:用于为序列容器提供不同的接口。
在 STL 中使用容器库
下面是一个实现链表的例子,首先通过使用结构,然后通过列表容器。
#include <iostream>
struct node
{
int data;
struct node * next;
}
int main ()
{
struct node *list1 = NULL;
}
上面的程序只是创建了一个列表节点,没有定义插入和删除函数,要做到这一点,你需要写更多的代码。
现在让我们看看如何使用容器库来简化它。当我们使用列表容器来实现链表时,我们只需要包含列表头文件,并使用列表构造器来初始化列表。
#include <iostream>
#include <list>
int main ()
{
list<int> list1;
}
就这样!我们有一个列表,不仅如此,容器库还提供了所有不同的方法,可用于对列表执行不同的操作,如插入、删除、遍历等。
因此,您可以看到,使用容器库实现数据结构非常容易。