雨巨的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. public,protected,private,static,final的区别(转载)

    1.类 (1)在java中有public.protected.private三种显示的修饰符用于控制可见性,package不是显示的修饰符,它是隐含的,即如果在类.变量等前没加显示的可见性修饰符,那它 ...

  2. LookAround开元之旅

    http://blog.csdn.net/lancees/article/details/17696805

  3. 透视WPF 应用程序的利器

    当我们看到一些设计新颖的网站时,可以借助浏览器自带的Inspector 工具或插件方便的浏览网站布局结构及逻辑.如果是WPF 应用程序能否看到控件的架构方式呢?本篇将介绍两款工具Snoop 和WPF ...

  4. CSS的两种盒模型

    盒模型一共有两种模式,一种是标准模式,另一种就是怪异模式. 当你用编辑器新建一个html页面的时候你一定会发现最顶上都会有一个DOCTYPE标签,例如: <!DOCTYPE HTML PUBLI ...

  5. Hadoop实战-MapReduce之WordCount(五)

    环境介绍: 主服务器ip:192.168.80.128(master)  NameNode  SecondaryNameNode ResourceManager 从服务器ip:192.168.80.1 ...

  6. 关于indexOf的使用

    今天项目中出现一个bug,在筛选数据的时候出现了冗余数据,查找发现在indexOf方法判断的时候找到了问题的所在. package demo; public class test { public s ...

  7. log4j(转)

    让System.out.println回家种田,换句话说,就是该干嘛干嘛去. 您可能在想: System.out.println几乎在每个Java程序里都有那么几行,如何让他老人家回家种田呢? 我们怎 ...

  8. __STDC_CONSTANT_MACROS和__STDC_CONSTANT_MACROS的作用

    虽然是写C++出身,但还真不知道这两个宏是什么作用.查了一下,参见这里. __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS are a workaround ...

  9. POJ2492 A Bug's Life —— 种类并查集

    题目链接:http://poj.org/problem?id=2492 A Bug's Life Time Limit: 10000MS   Memory Limit: 65536K Total Su ...

  10. 使用libcurl进行HTTP GET操作

    Working example how to do a GET request with libcurl and save it to a string variable for future use ...