社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
无序容器的无序性
- 有序的关联容器key值会按序排列,但是无序容器不会,见下面案例
//当使用顺序容器时,会为key自动排序 map<string, int> word_count; //空的 string word; while (cin >> word) { ++word_count[word]; } for (const auto &w : word_count) { cout <<w.first <<" occurs "<<w.second<< ((w.second>1)?" times":" time")<< endl; }
//无序容器的key随机存储 unordered_map<string, int> word_count; //空的 string word; while (cin >> word) { ++word_count[word]; } for (const auto &w : word_count) { cout <<w.first <<" occurs "<<w.second<< ((w.second>1)?" times":" time")<< endl; }
无序容器的管理桶
- 无序容器提供了一组管理桶的函数,这些成员函数允许我们查询容器的状态以及必要时强制容器进行重组。见下面
无序容器对关键字类型的要求
unordered_map提供下标操作、unordered_multimap不提供下标操作
- unordered_map的key唯一,提供下标操作;但unordered_multimapkey不唯一,补提供下标操作
- 使用方法:与map类似,见map文章
添加元素(insert、emplace)
- 见map笔记处
删除元素(erase)
- 见map函数,原理相同
其他操作
- 详细介绍,见map容器处
都不提供下标操作(下标运算符和at函数)
- 因为只有一个key,没有key与value的对应关系
添加元素(insert、emplace)
- 见map笔记处
删除元素(erase)
- 见map函数,原理相同
其他操作
- 详细介绍,见map容器处
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!