关联容器
元素按关键字来保存和访问。
map
关键字-值 对
set
关键字
关联容器类型
按关键字有序保存元素
map 保存关键字-值对
set 保存关键字
multimap 关键字可重复出现的map
multiset 关键字可重复出现的set
按关键字无序保存元素
unordered_map 用哈希函数组织的map
unordered_set 用哈希函数组织的set
unordered_multimap 关键字可重复出现的用哈希函数组织的map
unordered_multiset 关键字可重复出现的用哈希函数组织的set
pair
pair<string,int> anon;
anon.first
anon.second
make_pair(v1,v2)
map
- 基于红黑树实现(红黑树是一种自平衡二叉树,保障了良好的最坏情况运行时间,可以在O(log n)时间内完成查找、插入、删除)
- 红黑树是一种二叉查找树,其重要性质是有序,中序遍历时取出的元素是有序的。
容器的遍历
auto map_it=word_count.cbegin();
while(map_it != word_count.cend()){
cout<<map_it->first<<" "<<map_it->second;
++map_it;
}
unordered_map
- 基于hash_table实现,一般是由一个大vector,vector元素节点可以挂接链表来实解决冲突来实现。