雨巨的UVA的C++题集英文真长…

题意:

有两本字典,第一行是旧字典,第二行是新字典。

每行不超过100个字符,没有空格,两本字典都可以是空的;

新key:+

缺key:-

值变 :*

思路:

具体见代码,具体参考http://blog.csdn.net/acvay/article/details/43021077

这里会出现一个count函数

algorithm头文件定义了一个count的函数,其功能类似于find。这个函数使用一对迭代器和一个值做参数,返回这个值出现次数的统计结果。

编写程序读取一系列int型数据,并将它们存储到vector对象中,然后统计某个指定的值出现了多少次

//#include <bits/stdc++.h>
#include<cstdio>
#include<iostream>
#include<queue>
#include<map>
#include<string.h>
#include<algorithm>
using namespace std; map<string,string>d[2];
map<string,string>::iterator it; void init()
{
d[0].clear();
d[1].clear();
}
string t[110];
void print(char c,int n)
{
sort(t,t+n);
cout<<c<<t[0];
for(int i=1;i<n;i++)
cout<<','<<t[i];
puts("");
} int main()
{
int T;
scanf("%d",&T);
while(T--)
{
init();
string s,a,b;
for(int i=0;i<2;++i)
{
cin>>s;
int j=1,len=s.size();
while(len>2&&j<len)
{
a=b="";
while(s[j]!=':')
a+=s[j++];
j++;
while(s[j]!=','&&s[j]!='}')
b+=s[j++];
j++;
d[i][a]=b;
//cout<<a<<":"<<b<<endl;
}
}
int c1,c2,c3;
c1=c2=c3=0;
//访问新字典,如果旧字典key不存在,那么就一定多了;
for(it=d[1].begin();it!=d[1].end();it++)
if(!d[0].count(it->first))
t[c1++]=it->first;
if(c1)
print('+',c1); //访问旧字典,如果新字典key不存在,那么就一定少了;
for(it=d[0].begin();it!=d[0].end();it++)
if(!d[1].count(it->first))
t[c2++]=it->first;
if(c2)
print('-',c2); //访问新字典,如果旧字典有,且值是不一样的,那么就是改变;
for(it = d[1].begin(); it != d[1].end(); ++it)
if(d[0].count(it->first)&&d[0][it->first]!=it->second) t[c3++]=it->first;
if(c3)
print('*',c3); //如果都没有;
if(!(c1 || c2 || c3)) puts("No changes");
puts("");
}
return 0;
}

UVA12504【C++STL运用】的更多相关文章

  1. 详细解说 STL 排序(Sort)

    0 前言: STL,为什么你必须掌握 对于程序员来说,数据结构是必修的一门课.从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来.幸运的是这些理论都已经比较成熟,算 ...

  2. STL标准模板库(简介)

    标准模板库(STL,Standard Template Library)是C++标准库的重要组成部分,包含了诸多在计算机科学领域里所常见的基本数据结构和基本算法,为广大C++程序员提供了一个可扩展的应 ...

  3. STL的std::find和std::find_if

    std::find是用来查找容器元素算法,但是它只能查找容器元素为基本数据类型,如果想要查找类类型,应该使用find_if. 小例子: #include "stdafx.h" #i ...

  4. STL: unordered_map 自定义键值使用

    使用Windows下 RECT 类型做unordered_map 键值 1. Hash 函数 计算自定义类型的hash值. struct hash_RECT { size_t operator()(c ...

  5. C++ STL简述

    前言 最近要找工作,免不得要有一番笔试,今年好像突然就都流行在线笔试了,真是搞的我一塌糊涂.有的公司呢,不支持Python,Java我也不会,C有些数据结构又有些复杂,所以是时候把STL再看一遍了-不 ...

  6. codevs 1285 二叉查找树STL基本用法

    C++STL库的set就是一个二叉查找树,并且支持结构体. 在写结构体式的二叉查找树时,需要在结构体里面定义操作符 < ,因为需要比较. set经常会用到迭代器,这里说明一下迭代器:可以类似的把 ...

  7. STL bind1st bind2nd详解

    STL bind1st bind2nd详解   先不要被吓到,其实这两个配接器很简单.首先,他们都在头文件<functional>中定义.其次,bind就是绑定的意思,而1st就代表fir ...

  8. STL sort 函数实现详解

    作者:fengcc 原创作品 转载请注明出处 前几天阿里电话一面,被问到STL中sort函数的实现.以前没有仔细探究过,听人说是快速排序,于是回答说用快速排序实现的,但听电话另一端面试官的声音,感觉不 ...

  9. STL的使用

    Vector:不定长数组 Vector是C++里的不定长数组,相比传统数组vector主要更灵活,便于节省空间,邻接表的实现等.而且它在STL中时间效率也很高效:几乎与数组不相上下. #include ...

随机推荐

  1. cvpr2014

    http://www.cvpapers.com/cvpr2014.html 吴佳俊 楼天城

  2. 计算IMEI号的校验位

    计算IMEI号的校验位 移动设备国际识别码(IMEI:International Mobile Equipment Identification Number)是差别移动设备的标志,具有唯一性,贴在手 ...

  3. Edit conflicts

    Edit conflicts 当副本修改处和服务器版本相同处被修改并下载到本地时,就会发生文件冲突. 操作步骤如下所示: Ø 执行"SVN Update" Ø 若发生冲突,会出现如 ...

  4. IOS8 TouchID使用介绍

    本文转载至 http://blog.csdn.net/jinkaiouyang/article/details/35555123 IOS8将指纹识别技术开放出来了.我们能够利用用户设置的touch I ...

  5. 【BZOJ4296】[PA2015]Mistrzostwa BFS

    [BZOJ4296][PA2015]Mistrzostwa Description 给定一张n个点m条边的无向图,请找到一个点数最多的点集S,满足:1.对于点集中任何一个点,它至少与d个点集中的点相邻 ...

  6. 基于EasyDarwin实现幼儿园监控类项目

    移动互联网越来越普及,幼儿园监控类的项目也越来越多,如何能够以最低的成本.最快的速度搭建一套幼儿园监控类的平台成了许多开发者的需求,那么我们今天就来简单探讨一下如何基于EasyDarwin实现一套幼儿 ...

  7. ZFIND_ENHANCEMENT(找增强点-新)

    REPORT ZFIND_ENHANCEMENT. *&-------------------------------------------------------------------- ...

  8. 在oc中一些常用的宏定义总结

    1.打印CGRect,Size,Point #define NSLogRect(rect) NSLog(@"%s x:%.4f, y:%.4f, w:%.4f, h:%.4f", ...

  9. LVS的体系结构

    LVS集群的体系结构 章文嵩 (wensong@linux-vs.org) 转自LVS官方资料 2002 年 4 月 本文主要介绍了LVS集群的体系结构.先给出LVS集群的通用体系结构,并讨论了其的设 ...

  10. mac配置apache

    http://www.cnblogs.com/snandy/archive/2012/11/13/2765381.html 用自带的 sudo apachectl -v sudo apachectl ...