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;     (<>内为数据类型)

  • 相关阅读:
    Mac OS X各版本号的历史费用和升级关系
    Openlayers2中统计图的实现
    CentOS下Redisserver安装配置
    最小生成树算法
    机器学习---支持向量机(SVM)
    Android HttpURLConnection源代码分析
    Lighttpd1.4.20源代码分析 笔记 状态机之错误处理和连接关闭
    <html>
    【LeetCode-面试算法经典-Java实现】【059-Spiral Matrix II(螺旋矩阵II)】
    软件开发中的11个系统思维定律
  • 原文地址:https://www.cnblogs.com/theshorekind/p/14317233.html
Copyright © 2011-2022 走看看