zoukankan      html  css  js  c++  java
  • おみやげをまらいました(STL--map相关)

    形式:map<key,value>

    一般以map<string,int>这种形式表示声明,<>内存储的是键值对的类型

    声明key为string,value为int,名称为mp的map类型使用语句 map<string,int> mp; 

    key不重复

    需要头文件<map>

    可以通过键key找值value

    以题  おみやげをまらいました  为例

    题目的意思是输入每对字符串的第二个,让你找第一个,那么存储的时候就可以反过来存

    key保存第二个字符串,value保存第一个字符串,这样就方便使用find(key)进行查找

    输入的时候使用下标运算符,map[key]=value;下标是值key

    代码如下:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<map>
    using namespace std;
    int main()
    {
        string s1,s2;
        map<string,string>  mp;
        for(int i=1;i<=3;i++)
        {
            cin>>s1>>s2;
            mp[s2]=s1;//使用下标运算符 
        }
        int n;
        string st;
        cin>>n;
        map<string,string> ::iterator it;//声明迭代器 
        for(int i=1;i<=n;i++)
        {
            cin>>st;
            it=mp.find(st);//查找并将结果保存到迭代器 
            if(it!=mp.end())//不等于mp.end()说明找到了 
            cout<<it->second<<endl;//迭代器的<first,second>对应于map的<key,value> 
            else
            cout<<"Fake"<<endl;
        }
        return 0;
    }

    map常用操作:

    //声明方式:
    map<keytype,valuetype> mp;//keytype是键的类型,valuetype是值的类型
    //常用操作: 
        mp.insert(pair<int,string>(1,"one"));//使用pair类型插入
        mp.insert(map<int,string>::value_type (1,"one"));//使用value_type插入 
        mapStudent[1]="one";//下标方式插入 
        mp.find(key);//返回key映射的迭代器,如果没找到,返回指向末尾的迭代器(mp.end())
        mp.erase(it);//删除it指向的元素 
        mp.erase(key);//key为要删除的映射的键
        mp.erase(first,last);//范围删除 
        mp.size();//大小 
        mp.clear();//清除所有元素 

    使用迭代器进行遍历操作

    假设迭代器为it,那么it->first为第一个元素,it->second为第二个元素

    迭代器的声明方式为 map<string,int> :: iterator it;     (<>内为数据类型)

  • 相关阅读:
    关于echarts、layer.js和jqGrid的知识点
    Aspose.Cell和NPOI生成Excel文件2
    Aspose.Cell和NPOI生成Excel文件
    关于JS嵌套点击事件的问题。
    有关二维码学习小整理
    二维码
    微信扫码登录实现原理
    C#模拟Http与Https请求框架实例
    C#中调用user32.dll库的keybd_Event函数,操作键盘
    对象数组 深拷贝
  • 原文地址:https://www.cnblogs.com/theshorekind/p/14317233.html
Copyright © 2011-2022 走看看