当前位置:   article > 正文

[C/C++标准库]_[初级]_[map的查找函数分析]_标准库的map 搜寻效率

标准库的map 搜寻效率

场景:

1. map在查找非数值索引(数值非重复索引可以使用vector)的对象时是高效率的,因为用的红黑树的实现,查找和插入都是logarithmic time 效率很高.

2.map可以说是很实用的数据结构.

3.使用multimap可以存储重复key,使用场景就是1对多的情况,比如一个联系人对应多个分组.


  1. void TestMap()
  2. {
  3. //map一般是通过红黑树来实现.http://en.cppreference.com/w/cpp/container/map
  4. //multimap也一样的
  5. //这里提示下map的优点是key是自动排序的,当然可以设置key的排序方式.在map的构造函数里.
  6. //1.判断map里是否包含某个key.可以使用count和find.
  7. //find是找到第一个之后可以直接使用,count只是统计个数.两个的时间其实是一样的,
  8. //硬要说的话是find找到第一个之后直接结束,对于map这种只有唯一key的速度是一样的,时间复杂度是 logarithmic time
  9. typedef map<int,int> TMap;
  10. typedef multimap<int,int> TTMap;
  11. TMap m;
  12. m[1] = 8;
  13. m[2] = 10;
  14. m[5] = 11;
  15. TTMap mm;
  16. mm.insert(pair<int,int>(1,8));
  17. mm.insert(pair<int,int>(2,10));
  18. mm.insert(pair<int,int>(1,11));
  19. mm.insert(pair<int,int>(1,12));
  20. //count
  21. int count = 0;
  22. if(count = m.count(1))
  23. {
  24. //1.如果要使用,还是得使用[]查找一次.
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/992001
推荐阅读
相关标签
  

闽ICP备14008679号