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[], ch2[], ch3[], tmpch[];
int main()
{
while(gets(ch3))
{
if(strlen(ch3) == )
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 = ;
map<string, string> :: iterator it;
it = mp.find(tmpch);
if(it != mp.end())
{
cout << mp[tmpch] << endl;
}
else
{
cout << "eh" << endl;
}
} return ;
}

之前我写的错误的代码:

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

map<key,value>mp

key不建议是char*指针,

map内部是一个红黑树,

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

所以要这样用

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

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

POJ2503 STL map用法的更多相关文章

  1. c++ STL map 用法

    map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据 处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时 ...

  2. STL map 用法

    首先make_pair Pairs C++标准程序库中凡是"必须返回两个值"的函数, 也都会利用pair对象  class pair可以将两个值视为一个单元.容器类别map和mul ...

  3. STL map用法总结(multimap)

    2017-08-19 10:58:52 writer;pprp #include <map> #include <string> #include <iostream&g ...

  4. STL:map用法总结

    一:介绍 map是STL的关联式容器,以key-value的形式存储,以红黑树(平衡二叉查找树)作为底层数据结构,对数据有自动排序的功能.命名空间为std,所属头文件<map> 二:常用操 ...

  5. C++中的STL中map用法详解(转)

    原文地址: https://www.cnblogs.com/fnlingnzb-learner/p/5833051.html C++中的STL中map用法详解   Map是STL的一个关联容器,它提供 ...

  6. std::map用法

    STL是标准C++系统的一组模板类,使用STL模板类最大的好处就是在各种C++编译器上都通用.    在STL模板类中,用于线性数据存储管理的类主要有vector, list, map 等等.本文主要 ...

  7. POJ 3096 Surprising Strings(STL map string set vector)

    题目:http://poj.org/problem?id=3096 题意:给定一个字符串S,从中找出所有有两个字符组成的子串,每当组成子串的字符之间隔着n字符时,如果没有相同的子串出现,则输出 &qu ...

  8. 详解C++ STL map 容器

    详解C++ STL map 容器 本篇随笔简单讲解一下\(C++STL\)中的\(map\)容器的使用方法和使用技巧. map容器的概念 \(map\)的英语释义是"地图",但\( ...

  9. Features Track[STL map]

    目录 题目地址 题干 代码和解释 参考 题目地址 Features Track(ACM-ICPC 2018 徐州赛区网络预赛 ) 题干 代码和解释 题意:一个动画有许多 n 帧,每帧有 k 个点,点的 ...

随机推荐

  1. git之merge和rebase的区别

    merge合并 # merge操作 第一步: # 先创建一个目录,在主分支提交3个txt文件 [root@luchuangao]# mkdir oldboy [root@luchuangao]# gi ...

  2. NoSQL文章

    MongoDB Bugsnag的MongoDB分片集群使用经验

  3. servlet实现多文件打包下载

    当用户一次下载多个文件时.普通情况是,每下载一个文件,均要弹出一个下载的对话框.这给用户造成了非常大不便. 比較理想的情况是,用户选择多个文件后.server后端直接将多个文件打包为zip.以下贴出实 ...

  4. Linux kill和kill-9区别

    进程状态转换图 kill和kill -9,两个命令在linux中都有杀死进程的效果,然而两命令的执行过程却大有不同,在程序中如果用错了,可能会造成莫名其妙的现象. 执行kill命令,系统会发送一个SI ...

  5. 11g ASM新特性

    Oracle 11g的ASM有两个有意思的特性,我们看看他们能带给我们什么? 1.Fast mirror resync 原来当diskgroup中的盘发生故障时,Oracle会将这个盘标记为offli ...

  6. Mock Server 之 moco-runner 使用指南一

    文章出处http://ju.outofmemory.cn/entry/96866 用以下命令可以启动moco-runner 服务 java -jar moco-runner-<version&g ...

  7. python的最大递归层数

    def foo(n): print(n) n += 1 foo(n) if __name__ == '__main__': foo(1) 打印出998,然后报错 RecursionError: max ...

  8. SQL Server 数据分页查询

    最近学习了一下SQL的分页查询,总结了以下几种方法. 首先建立了一个表,随意插入的一些测试数据,表结构和数据如下图: 现在假设我们要做的是每页5条数据,而现在我们要取第三页的数据.(数据太少,就每页5 ...

  9. vs git 推送远程会失败.

    Gitblit使用admin创建版本库.   使用VS无法推送到远程服务器. VS 2017 Git failed with a fatal error 可能是帐号不应不上.   本地上帐号与服务器的 ...

  10. javascript与jQuery的each,map回调函数参数顺序问题

    <script> var arr = [2,3,6,7,9]; //javascript中的forEach 和 map方法 arr.forEach(function(value,index ...