UVA12504【C++STL运用】
雨巨的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运用】的更多相关文章
- 详细解说 STL 排序(Sort)
0 前言: STL,为什么你必须掌握 对于程序员来说,数据结构是必修的一门课.从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来.幸运的是这些理论都已经比较成熟,算 ...
- STL标准模板库(简介)
标准模板库(STL,Standard Template Library)是C++标准库的重要组成部分,包含了诸多在计算机科学领域里所常见的基本数据结构和基本算法,为广大C++程序员提供了一个可扩展的应 ...
- STL的std::find和std::find_if
std::find是用来查找容器元素算法,但是它只能查找容器元素为基本数据类型,如果想要查找类类型,应该使用find_if. 小例子: #include "stdafx.h" #i ...
- STL: unordered_map 自定义键值使用
使用Windows下 RECT 类型做unordered_map 键值 1. Hash 函数 计算自定义类型的hash值. struct hash_RECT { size_t operator()(c ...
- C++ STL简述
前言 最近要找工作,免不得要有一番笔试,今年好像突然就都流行在线笔试了,真是搞的我一塌糊涂.有的公司呢,不支持Python,Java我也不会,C有些数据结构又有些复杂,所以是时候把STL再看一遍了-不 ...
- codevs 1285 二叉查找树STL基本用法
C++STL库的set就是一个二叉查找树,并且支持结构体. 在写结构体式的二叉查找树时,需要在结构体里面定义操作符 < ,因为需要比较. set经常会用到迭代器,这里说明一下迭代器:可以类似的把 ...
- STL bind1st bind2nd详解
STL bind1st bind2nd详解 先不要被吓到,其实这两个配接器很简单.首先,他们都在头文件<functional>中定义.其次,bind就是绑定的意思,而1st就代表fir ...
- STL sort 函数实现详解
作者:fengcc 原创作品 转载请注明出处 前几天阿里电话一面,被问到STL中sort函数的实现.以前没有仔细探究过,听人说是快速排序,于是回答说用快速排序实现的,但听电话另一端面试官的声音,感觉不 ...
- STL的使用
Vector:不定长数组 Vector是C++里的不定长数组,相比传统数组vector主要更灵活,便于节省空间,邻接表的实现等.而且它在STL中时间效率也很高效:几乎与数组不相上下. #include ...
随机推荐
- The type List is not generic(转载)
错误:The type List is not generic; it cannot be parameterized with arguments <Activity> 代码如下: pu ...
- Git Xcode配置
本文转载至 http://www.cnblogs.com/imzzk/p/xcode_git.html 感谢作者分享 Git源代码管理工具的出现,使得我们开发人员对于源码的管理更加方便快捷.至于Git ...
- SAM4E单片机之旅——1、LED闪烁之空循环
最近因为导师要写一本关于SAME4单片机的书籍,而我也作为一个嵌入式的初学者看了这本书.现在也让我写写几个小的程序,做做示例.既然写了文档之类的,就发到博客上来吧. 目前关于这芯片能参考的书籍大概就只 ...
- Java类加载器( 死磕8)
[正文]Java类加载器( CLassLoader ) 死磕 8: 使用ASM,和类加载器实现AOP 本小节目录 8.1. ASM字节码操作框架简介 8.2. ASM和访问者模式 8.3. 用于增 ...
- port_443
GRC | Port Authority, for Internet Port 443 https://www.grc.com/port_443.htm
- a completely rewritten architecture of Hadoop cluster
https://www.ibm.com/developerworks/library/bd-yarn-intro/
- react遇到的各种坑
标签里用到<label for>的,for 要写成htmlFor 标签里的class要写成className 组件首字母一定要大写 单标签最后一定要闭合 如果html里要空格转义, 注意不 ...
- 8.JS数据类型
① 数据类型:字符串,数字,布尔,数组,对象,Null,Undefined ② JavaScript拥有动态类型.这意味着相同的变量可用作不同的类型: 实例 var x: //x为undefine ...
- cgic 中文文档
CGIC英文文档地址:https://boutell.com/cgic/ cgic是用c写cgi程序的一个很小的库,所以英文文档也很少,为了便于日后复习翻看,心血来潮,翻译了一遍. 1. 什么是cgi ...
- 微信小程序开发:学习笔记[9]——本地数据缓存
微信小程序开发:学习笔记[9]——本地数据缓存 快速开始 说明 本地数据缓存是小程序存储在当前设备上硬盘上的数据,本地数据缓存有非常多的用途,我们可以利用本地数据缓存来存储用户在小程序上产生的操作,在 ...