C++STL之map映射的使用

map内部据说以红黑树的方式实现,其查找的时间效率是2lgN
到目前为止,我碰到过两种需要使用map的情况

  1. 建立string与int的联系来统计某个string对象的出现次数(这或许告诉我们,在需要统计一个复杂对象的出现次数时,可以借助map来查找,使用起来非常方便一个map.count(Object)==num即可)
  2. 为集合分配ID的时候,一个集合对应一个ID,其实就是把集合映射成ID,使得一个ID为a的集合它可以拥有ID为a,ID为B的集合作为元素,这样就实现了集合的集合这一操作也是一个典型的应该使用map的方法,但有一个弊端是,这样做只能查找一个集合的ID,我们还需要一个vector来存放所有的集合,这样才能使得一个id对应集合,当然也可以再来个map,都一样。(或许这个例子启发我们,当我们需要把什么东西映射成另一种东西的时候应该考虑map,在这其中还告诉了我们该如何处理集合的集合,即把集合映射成自己的元素,这样自己就可以包含自己,也可以包含别人)
    由于map抽象点所就是<key,value>,而key是不可改的这一点一定要注意

下面我们来说下map的使用方法

实例化
#include <map>
map<key,value> map0;
怎么知道是否存在某个key
if(map0.count(key))flag = 1;
else flag=0;
知道某key存在,如何查找对应value
map0[key]即value
由于重载了[]所以用起来也是非常方便

猜你喜欢

转载自blog.csdn.net/m0_37456764/article/details/83023051