31.2 容器概览

一个容器保存着一个对象序列。本节概述容器类型并简要介绍它们的特性。容器上的操作将在31.3节中介绍。

容器可分类为:

·顺序容器提供对元素(半开)序列的访问。

·关联容器提供基于关键字的关联查询。

此外,标准库还提供了一些保存元素的对象类型,它们并未提供顺序容器或关联容器的全部功能:

·容器适配器提供对底层容器的特殊访问。

·拟容器保存元素序列,提供容器的大部分但非全部功能。

STL容器(顺序和关联容器)都是资源句柄,都定义了拷贝和移动操作(见3.3.1节)。所有容器操作都提供了基本保证(见13.2节),确保与基于异常的错误处理机制能正确协同工作。

模板参数A是一个分配器,容器用它来分配和释放内存(见13.6.1节和34.4节)。例如:

A的默认值是std::allocator<T>(见34.4.1节),此分配器用operator new()和operator delete()为元素分配和释放内存。

这些容器都定义在<vector>、<list>和<deque>中。顺序容器为元素连续分配内存(如vector)或将元素组织为链表(如forward_list),元素的类型是容器的成员value_type(就是上表中的T)。deque(发音“deck”)采用链表和连续存储的混合方式。 ...

Get C++程序设计语言(第4部分:标准库)(原书第4版) now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.