根据“数据在容器中的排列”特性,容器可概分为序列式(sequence)和关联式(associative)两种。
标准的STL关联式容器分为set(集合)和map(映射表)两大类,以及这两大类的衍生体multiset(多键集合)和multimap(多键映射表)。map,multimap,set,multiset四个关联容器的底层机制均以RB-tree(红黑树)完成。而C++11标准中,unordered_map,unordered_multimap,unordered_set,unordered_multiset四个关联容器的底层机制则以hash table(散列表)完成。
所谓关联式容器(associative containers),观念上类似关联式数据库:每个元素都有一个键值(key)和一个实值(value)。
set的键值就是实值。map的键值可以和实值分开,并形成一种映射关系,所以map被称为映射表,或称为字典。
转载请注明原文地址: https://ju.6miu.com/read-669678.html