31.3 操作概览

标准容器提供的操作和类型可以概括如下:

在这里箭头表示为一个容器提供了一组操作,不是继承的含义。问号(?)是一种简化表示:一些操作只为某些容器提供。特别是:

·multi*系列关联容器或集合不提供[]或at()。

·forward_list不提供insert()、erase()或emplace(),而是提供*_after系列操作。

·forward_list不提供back()、push_back()、pop_back()或emplace_back()。

·forward_list不提供reverse_iterator、const_reverse_iterator、rbegin()、rend()、crbegin()、crend()或size()。

·unordered_*系列关联容器不提供<、<=、>或>=。

在上图中[]和at()操作出现了多次,这只是为了减少箭头的数目。

桶接口将在31.4.3.2节中介绍。

如果有意义,访问操作都会提供两个版本:一个用于const对象,另一个用于非const对象。

标准库操作都有复杂性保证。

“头部”操作表示在第一个元素之前的插入和删除操作。类似地,“尾部”操作是在最后一个元素之后的插入和删除操作,“列表”操作是在任意位置的插入和删除操作。 ...

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.