目录
1. 序列式容器和关联式容器
我们已经接触过STL中的部分容器,如:string、vector、list、deque、array、forward_list等,这些容器统称为序列是容器,因为逻辑结构为线性序列的数据结构,两个位置存储的值之间一般没有紧密的关联关系,比如交换一下,他依旧是序列式容器。顺序容器中的元素是按他们在容器中的存储位置来顺序保存和访问的。
关联式容器也是用来存储数据的,与序列是容器不同的是,关联式容器逻辑结构通常是非线性结构,两个位置有紧密的关联关系,交换一下,他的存储结构就被破坏了。顺序容器中的元素是按关键字来保存和访问的。关联式容器有map/set系列和unofdered_map/unordered_set系列。
map和set底层是红黑树,红黑树是一颗平衡二叉搜索树。unordered_map/unordered_set底层是哈希表,set是key搜索场景的结构,map是key/value搜索场景的结构。