• c语言map的详细用法


    转载自https://www.cnblogs.com/panweiwei/p/6657583.html
    一、定义

    (1) map   Map; 
    (2) 或者是:typedef   map   Mymap; 
                      Mymap   Map; 
    
    • 1
    • 2
    • 3

    二、插入数据

    插入数据之前先说一下pair 和 make_pair 的用法
    pair是一个结构体,有first和second 两个域,可以直接访问

    string key="sunquan";  
    int value=123456;  
    pair   b(key, value);//这里 pair 是数据类型,后面是调带参构造方法  
    cout<
    • 1
    • 2
    • 3
    • 4

    而make_pair是返回一个pair <类型,类型> 的数据,eg:make_pair(“asa”,123456); 不过还得找个pair 类型的变量来接受返回值。
    下面步入正题:

    (1) Map[“abc”]=1;
    (2) Map.insert(pair(“c”,3));
    (3)Map.insert(make_pair(“d”,4));

    三、修改和查找数据

    (1)修改Map[“sunquan”]=11111;

    (2)查找数据 用Map.find(key); 可以通过键来查。

    切记不要用int value=Map[key];这样会在Map中增加这个key,而value就是缺省值(int 为0,string为空字符串)。

    通过方法(2),会返回迭代器的地址,key不存在的话迭代器的值为Map.end();

    四、删除元素

    (1)通过key删除;

    (2)通过迭代器来删除;

    下面看一下详细的代码:

    #include   
    #include   
    #include   
    #include   
    #include   
    using namespace std;  
      
    int main()  
    {  
        map Map;  
        map ::iterator it;  
        Map.insert(pair("root",12));  
        Map.insert(pair("scot",11));  
        for(it=Map.begin();it!=Map.end();it++)  
            cout<first<<"    "<second<first<<"    "<second<
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    注:

    map::iterator it 是声明一个 迭代器
    map it 是 声明一个map容器

    五、c++中map的一些方法

    begin() 返回指向map头部的迭代器
    clear() 删除所有元素
    count() 返回指定元素出现的次数
    empty() 如果map为空则返回true
    end()   返回指向map末尾的迭代器
    
    equal_range()    返回特殊条目的迭代器对
    
    erase() 删除一个元素
    find()  查找一个元素
    insert()插入元素
    max_size()返回可以容纳的最大元素个数
    size()  返回map中元素的个数
    swap()  交换两个map
    
      get_allocator()  返回map的配置器
      key_comp()       返回比较元素key的函数
      lower_bound()    返回键值>=给定元素的第一个位置
      max_size()       返回可以容纳的最大元素个数
      rbegin()         返回一个指向map尾部的逆向迭代器
      rend()           返回一个指向map头部的逆向迭代器
      upper_bound()     返回键值>给定元素的第一个位置
      value_comp()      返回比较元素value的函数
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
  • 相关阅读:
    8万字带你入门Rust
    EL&JSTL:EL表达式总结
    哪些城市有PMP考试考点?PMP考试考场都在哪?
    【数据结构】什么是线性表?
    【C++笔试强训】第二十八天
    2022年的有关语义分割的论文,含CVPR、ECCV、ICLR、AAAI
    Qt QWebEngineView 忽略https验证
    s域和z域的频域响应分析
    【图灵】Spring为什么要用三级缓存解决循环依赖问题
    亚马逊IP关联是什么?要怎么解决呢?
  • 原文地址:https://blog.csdn.net/m0_67400973/article/details/126327019