STL容器——map的用法

0、概述

  • map翻译为映射,map可以将任何基本类型(包括STL容器)映射到任何基本类型(包括STL容器)。
  • 下面是mapmultimapunordered_map之间的差别。
    STL容器——map的用法_第1张图片
    注意这三种映射的底层实现,他决定了算法的时间复杂度。特别注意multimap其实是数值可重复版本的map
  • 需要添加头文件和命名空间
    #include
    using namespace std ;
    

1、map容器初始化

  • key:string -> value:int
    map<string,int> mp1;
    
  • key:int -> value:int
    map<int,int> mp2;
    
  • key: set -> value:int
    map<set<int>,int> mp3;
    

2、map容器内容的访问

  • 通过下标访问
    //对一个定义为 map mp 的 map,访问key为'c'的value
    printf("%d\n", mp['c']); 
    
  • 通过迭代器访问
    //对一个定义为 map mp 的 map,打印所有的key和对应的value
    for (map<char,int>::iterator it = mp.begin(); it != mp.end(); it++){
    	printf("%c %d\n", it->first/*key*/, it->second/*value*/);
    }
    

3、map常用函数

  • find() 【常用】
    mp.find(x)功能为查找keyx,找到之后返回迭代器,失败则返回mp.end()
  • 插入数据
    • insert函数插入pair数据 【常用】
      mp.insert(pair('x',1));key:‘x’,value:1插入到映射mp中。
    • 用数组的方式直接赋值
      mp['x']=1效果同上

你可能感兴趣的:(C/C++算法补注,c++,开发语言)