导入
简介
本章介绍所有类型C++容器中都具备的不同特性。
尽管标准模板库中的顺序容器和关联容器属于两类截然不同的容器,但它们有许多共同之处。例如,用于“创建”或“删除”容器、确定其“大小”、访问其元素、进行“赋值”或“交换”等操作,均与容器中元素的类型无关。容器通常被定义为具有任意大小,原因在于每个容器都配备了一个分配器,因此容器的大小可以在运行时动态调整。分配器在大多数情况下在后台自动工作。这一点在 std::vector 中尤为明显:调用 std::vector<int> 实际上等价于调用 std::vector<int, std::allocator<int>>。由于使用了 std::allocator,我们能够动态调整几乎所有容器的大小,但 std::array 例外。此外,它们还有更多共性:我们可以很方便地通过迭代器来访问容器中的元素。
尽管有这么多相似之处,不同容器在细节上仍存在差异。第 顺序容器 和 一般关联容器 章节详细介绍了这些差异。
C++ 详细介绍了以下顺序容器:std::array、std::vector、std::deque、std::list 和 std::forward_list。
关联容器同样可以分为有序和无序两类。
更多信息
在下一课中,我们将讨论如何根据特定参数来创建和销毁容器。