首页 > 编程语言 > 详细

C++复习映射

时间:2020-02-04 18:47:38      阅读:63      评论:0      收藏:0      [点我收藏+]

映射

1、pair(头文件<utility>)

  • 创建
  • pair<T1,T2>p;                                    //T1,T2为两种类型
  • pair<T1,T2>p(v1,v2)                          //定义时初始化
  • 赋值
  • typedef pair<string,double> P;
    P p1("Kite",1.2);
    P p2("Tom",3.2);
    P p3;
    p3 = p1; //直接赋值
    p1 == p2; //即p1,p2的第一二个元素对应相等
    p1 < p2; //遵循字典序比较p1和p2的第一二个元素

     

  • pair<int,double>p;
  • p = make_pair(1,1.2);  
  • 访问
  • p.first、p.second分别返回p的第一二个元素
  • pair作为返回值
  • #include<utility>
    #include<iostream>
    using namespace std;
    pair<string,int> f(int a){
        return make_pair("Tom",a);
    }
    int main(){
        string name;
        int grade;
        tie(name,grade) = f(99);
        cout << name <<   << grade;
        return 0;
    }

 2、map(头文件<map>)

  • 创建
  • map<key, value>m;                    //map同样可以用typedef进行简化声明;
  • m.first返回key,m.second返回value
  • 插入
  • m[key] = value
  • m.insert(pair<int,string>(100,"Tom"));
  • m.insert(make_pair(100,"Tom"));
  • 遍历
  • #include<iostream>
    #include<map>
    #include<algorithm>
    using namespace std;
    map<int,string>m;
    int main(){
        m[2] = "Kite";
        m[1] = "Tom";
        m[4] = "Jim";
        m[3] = "Mark";
        for(auto it = m.begin();it != m.end();it++){
            cout << it->first << : << it->second << endl;
            //map内部是按照first进行排序的 
            //m.size()返回map的大小 
        }
        return 0;
    } 
  • 查找
  • m[key]如果存在则返回value,若不存在则返回0,字符串返回"";         //不存在时存在查找风险
  • m.count(key),若存在则返回1,否则返回1
  • m.find(key),返回key的迭代器,可用it->second继续访问value,若不存在返回m.end();
  • 删除
  • m.erase(key)        //删除键值为key的元素,返回删除元素的个数
  • m.erase(it)            //删除迭代器it指向的元素
  • m.erase(it1,it2)     //删除迭代器it1与it2之间的元素,不包括it2(注意,map的迭代器不能进行加减,也不能比较,只能++,--)
  • m.clear()               //清空map内的元素
  • m.empty()             //若map为空则返回true,否则返回false

 

C++复习映射

原文:https://www.cnblogs.com/Cmathe/p/12260219.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!