zoukankan      html  css  js  c++  java
  • c++STL系列之Map

    开头总结:

    C++中STL的概念总结:

    1、容器 

    2、迭代器

    STL中所有的不同库都是容器的概念体现,基本操作都是基于迭代器的操作。

    一、Map初级用法:

    //声明
        map<int,string> m;//无参声明
        map<int,string> m1 = {
                {1,"one"},
                {2,"two"},
                {3,"three"},
        };
    
        //基本功能
        m.empty();//判空操作
        m1.size();//map的大小
        m1.at(1);//得到key对应的value,等价于m1[1];
        m1.clear();//清空map
      //map打印
    for (map<int,string>::iterator it=m1.begin();it!=m1.end();it++)
    {
    cout<<it->first<<" "<<it->second<<endl;
    }

      

    二、Map高级用法:

    map和set的插入删除效率比用其他序列容器高?因为对于关联容器来说,不需要做内存拷贝和内存移动。说对了,确实如此。set容器内所有元素都是以节点的方式来存储,其节点结构和链表差不多,指向父节点和子节点。

    map和set都有自己的count函数和find函数,可以直接调用。找不到时,指针指向map.end()。

        m1.insert(make_pair(4,"asf"));//插入
        m1.erase(4);//删除key为4对应的value
        m1.insert(make_pair(4,"asf"));
        map<int,string>::iterator key  = m1.find(4);//查找、若找到则删除
        m1.erase(key);//迭代器删除
        m1.count(1);//统计key=1的次数
    

     map根据value排序

            vector< pair<int,int> > vec(m.begin(),m.end());
            sort(vec.begin(), vec.end(),[](const pair<int,int> &p1, const pair<int,int> &p2)
            {
                return p1.second > p2.second;
            });
    

      

  • 相关阅读:
    Vue 冷知识(一)
    Google Chrome 谷歌浏览器 调试被坑之路
    全选、全不选、反选
    赋值运算符
    JS 数组的常用方法归纳之不改变原数组和其他
    CSS控制文字,超出部分显示省略号
    火狐浏览器解决跨域问题
    JS 数组的常用方法详解归纳之改变原数组方法
    vue项目 多文件上传并显示在页面上
    二叉搜索树操作
  • 原文地址:https://www.cnblogs.com/wobushangwangl/p/14151763.html
Copyright © 2011-2022 走看看