#include<iostream>
#include<string>
#include<map>
#include<fstream>
#include<sstream>
using namespace std;
map<string,string> buildMap(ifstream &map_file);
const string &transform(const string &s,const map<string,string> &m);
void word_transform(ifstream &map_file,ifstream &input)
{
auto trans_map=buildMap(map_file);//保存转换规则
string text; //保存输入中的一行
while(getline(input,text)) //读取一行输入
{
istringstream stream(text); //读取每个单词
string word;
bool firstword=true; //控制是否打印空格
while(stream>>word){
if(firstword)
firstword=false;
else
cout<<" "; //在单词间打印一个空格
cout<<transform(word,trans_map); //打印输出
}
cout<<endl; //完成一行的转换
}
}
map<string,string> buildMap(ifstream &map_file)
{
map<string,string> trans_map; //保存转换规则
string key; //要转换的单词
string value; //替换后的内容
while(map_file>>key&&getline(map_file,value))//读取第一个单词存入key中,行中剩余内容存入value
if(value.size()>) //检测是否有转换规则
trans_map[key]=value.substr(); //跳过前导空格
else
throw runtime_error("no rule for "+key);
return trans_map;
}
const string & transform(const string &s,const map<string,string> &m)
{
auto map_it=m.find(s); //实际转换规则
if(map_it!=m.cend()) //如果单词在转换规则map中
return map_it->second; //使用替换短语
else
return s; //否则返回原string
}
int main()
{
ifstream in1("1.txt");
ifstream in2("2.txt");
word_transform(in1,in2);
return ;
}
k okay?
y why
r are
u you
pic picture
thk thanks!
l8r later

以上是1.txt

where r u
y dont u send me a pic
k thk l8r

以上是2.txt

map的综合例子的更多相关文章

  1. SpringBoot AOP综合例子

    完整源码:https://github.com/947133297/cgLibDemo 通过AOP来便捷地输出日志,能更加方便排查系统的bug,这个例子中简单输出自定义文件和函数执行时的参数,函数要不 ...

  2. 图像变化之Laplacian()函数 and Schaar()滤波及综合例子

    先来  Laplacian()函数 #include<math.h> #include<opencv2/opencv.hpp> #include<string.h> ...

  3. SharpGL学习笔记(十一) 光源创建的综合例子:光源参数可调节的测试场景

    灯光的测试例子:光源参数可以调节的测试场景 先看一下测试场景和效果. 场景中可以切换视图, 以方便观察三维体和灯光的位置.环境光,漫射光,镜面反射光都可以在四种颜色间切换. 灯光位置和摄像机位置(Lo ...

  4. SharpGL学习笔记(八) 矩阵堆栈和变换的综合例子: 机器人

    我们先引入关于"矩阵堆栈"的官方说法: OpenGL的矩阵堆栈指的就是内存中专门用来存放矩阵数据的某块特殊区域.实际上,在创建.装入.相乘模型变换和投影变换矩阵时,都已用到堆栈操作 ...

  5. map用法小例子

    一. Map< Key , Value > m_Eg; 一般赋值表示成: TypeElem  value; m_Eg[key]  =  value; 或 m_Eg.insert(make_ ...

  6. java基础 数组 Set Map 集合综合应用 生成带0的随机字符串 "00000001" 水果商品号问题

    package com.swift.test01; /*有四种水果(苹果,香蕉,西瓜,橘子) 1.给每种水果设定一个商品号,商品号是8个0-9的随机数,商品号码不能重复, 最小值 "0000 ...

  7. R与数据分析旧笔记(二)随机抽样的一个综合例子

    题目:模拟产生统计专业同学的名单(学号区分),记录数学分析.线性代数.概率统计三科成绩,然后进行一些统计分析 > num=seq(10378001,10378100) > num [1] ...

  8. JSTL如何遍历Servlet传过来的list和map,用例子说明

    后端        List<Article> list = dao.getPageList(nameid,Integer.parseInt(page));        request. ...

  9. 6.6(java学习笔记)文件分割(IO综合例子)

    基本思路: 文件分割:将一个文件分割成若干个独立的文件.    设置分割后小文件文件的字节数,然后读取被分割文件, 将对应的字节数写入分割后的小文件中.     使用seek定位下一次读取位置. 文件 ...

随机推荐

  1. jsp登录显示

    1.登录成功设置session request.getSession().setAttribute("user", user); 2.前台test <div class=&q ...

  2. nginx禁止ip默认参数是$remote_addr无法禁止真实ip的问题

    由于网站使用了cdn所以$remote_addr获取的ip是cdn的ip,我现在先禁止某些ip访问发现无法禁止cdn传递过来的客户端的ip也就是$http_x_forwarded_for这个参数.比如 ...

  3. phar 反序列化学习

    前言 phar 是 php 支持的一种伪协议, 在一些文件处理函数的路径参数中使用的话就会触发反序列操作. 利用条件 phar 文件要能够上传到服务器端. 要有可用的魔术方法作为"跳板&qu ...

  4. android:首页点击返回键,两秒内再次点击退出系统

    //记录用户首次点击返回键的时间 private long firstTime = 0; /** * 通过监听keyUp 实现双击返回键退出程序 * @param keyCode * @param e ...

  5. Android解析WindowManager(一)WindowManager体系

    前言 WindowManagerService(WMS)和AMS一样,都是Android开发需要掌握的知识点,同样的,WMS也很复杂,需要多篇文章来进行讲解,为何更好的理解WMS,首先要了解Windo ...

  6. Java程序流程控制:判断结构、选择结构、循环结构

    本文内容: 判断结构 if 选择结构 switch 循环结构 while do-while for for each break.continue return 首发时间:2017-06-22 21: ...

  7. 【转】python version 2.7 required,which was not found in the registry

    源地址:http://www.cnblogs.com/thinksasa/archive/2013/08/26/3283695.html 方法:新建一个register.py 文件,把一下代码贴进去, ...

  8. ORACLE-SQL微妙之处

    本文总结一下平时经常使用的SQL语句以及一些ORACLE函数的微妙之处.欢迎大家多多补充平时最常用的SQL语句,供大家学习参考. SQL> select * from temp2; NAME S ...

  9. 修改SQL Server数据库表的创建时间最简单最直接有效的方法

    说明:这篇文章是几年前我发布在网易博客当中的原创文章,但由于网易博客现在要停止运营了,所以我就把这篇文章搬了过来,因为这种操作方式是通用的,即使是对现在最新的SQL Server数据库里面的操作也是一 ...

  10. Python中可视化图表处理echarts库的安装

    系统环境:Windows 7 企业版 进入cmd 输入:python –m pip install pyecharts