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;
            });
    

      

  • 相关阅读:
    linux jdk 安装
    hibernate下Session的获取方式
    java http的get,post请求
    DetachedCriteria的简单使用
    传入泛型类型(T.class)的方法
    spring4、hibernate4整合xml配置
    (转)谈依赖注入
    集合类概述
    Swing编程概述
    java构造方法之我见
  • 原文地址:https://www.cnblogs.com/wobushangwangl/p/14151763.html
Copyright © 2011-2022 走看看