zoukankan      html  css  js  c++  java
  • POJ2503 STL map用法

    2017-08-21 15:42:01 

    writer:pprp

    除了用到map以外,输入也是一个问题

    用到了sscanf详情请看上一篇博客

    /*
    theme:第一章 - 分治算法
    name: POJ 2503
    writer:pprp
    description:详情请见poj 2503
    date:Monday 2017/8/21
    */
    
    #include <bits/stdc++.h>
    
    using namespace std;
    
    map<string, string> mp;
    
    char ch1[20], ch2[20], ch3[40], tmpch[20];
    int main()
    {
        while(gets(ch3))
        {
            if(strlen(ch3) == 0)
                break;
            sscanf(ch3,"%s %s",ch1,ch2);
            mp.insert(make_pair(ch2,ch1));
        }
    
    
    //    map<string,string> ::iterator ii;
    //    for(ii = mp.begin(); ii != mp.end() ; ii++)
    //    {
    //        cout << ii->first << "  " << ii->second << endl;
    //    }
    
    
        while(gets(tmpch))
        {
            bool tag = 0;
            map<string, string> :: iterator it;
            it = mp.find(tmpch);
            if(it != mp.end())
            {
                cout << mp[tmpch] << endl;
            }
            else
            {
                cout << "eh" << endl;
            }
        }
    
    
    
    
        return 0;
    }

     之前我写的错误的代码:

    插入以后遍历,发现只读出最后一个

    map<key,value>mp

    key不建议是char*指针,

    map内部是一个红黑树,

    比较key的时候比较的是char*一个地址,而不是他指向的字符串

    所以要这样用

    struct ptrCmp
    {
        bool operator()( const char * s1, const char * s2 ) const
        {
            return strcmp( s1, s2 ) < 0;
        }
    };
    
    map<const char*,const char*,ptrCmp> mp;

    我测试了一下,没有用好,希望有大佬能给我展示可以用的代码;

  • 相关阅读:
    说说oracle分页的sql语句
    在desk于webi中资料查询不一致
    hql语句查询实体类采用list方法的返回结果集
    Come and join us at English corner
    一个失败项目引发的思考
    Use excel Macro export data from database
    Mark
    恭送功臣
    整理下心情
    Insert data from excel to database
  • 原文地址:https://www.cnblogs.com/pprp/p/7404778.html
Copyright © 2011-2022 走看看