absl容器介绍
Abseil 提供了许多容器作为 STL 容器的替代品,这些容器通常遵循 STL 容器的属性,尽管通常存在一些与标准库不同的 API 和实现细节。
在一般情况下,Abseil 容器的设计效率更高;然而,在某些情况下,STL 容器可能更有效。与 Abseil 提供的其他一些抽象不同,这些容器不应被视为其 STL 对应物的直接替代品,因为两组容器之间存在 API 差异。例如,Abseil 容器通常不保证插入或删除后的指针稳定性。
Abseilcontainer
库定义了以下容器集:
- B-tree ordered containers B树有序容器
- Swiss table unordered containers 瑞士表无序容器
有关每种容器类型的更多信息,请参见下文。
B 树有序容器Abseil container库包含有序容器,通常遵循 STL 容器 API 合同,但使用B 树而不是二叉树(如std::map
红黑数)实现:
absl::btree_map
absl::btree_set
absl::btree_multimap
absl::btree_multiset
在大多数情况下,这些有序的容器被设计为 std::map
、std::set
更有效的替代品