什么是 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; 
}

就这样!我们有一个列表,不仅如此,容器库还提供了所有不同的方法,可用于对列表执行不同的操作,如插入、删除、遍历等。

因此,您可以看到,使用容器库实现数据结构非常容易。