一样平常来说,像string、vector、list、deque、forward_list等容器,这些容器的底层逻辑机构为线性序列的数据结构,所以这些容器也叫做序列式容器,序列式容器两个位置存储的值之间一样平常没有精密的关联关系,如若将其互换,依旧是序列式容器。序列式容器中的元素是按他们在容器中的存储位置保存和访问的。
与之相反,关联式容器逻辑结构通常是非线性的,两个位置有精密的关联关系,不答应互换,因为会破坏存储结构。关联式容器中的元素是按照关键字来保存和访问的。
关联式容器有map/set系列和unordered_set/unordered_map系列。map和set的底层是红黑树(二叉搜索树),set是key搜索场景的结构,map是key/value搜索场景的结构。
set
set类的介绍
template < class T, // set::key_type/value_type
class Compare = less<T>, // set::key_compare/value_compare
class Alloc = allocator<T> // set::allocator_type 空间配置器