c++ primer 关联容器习题练习
来源:互联网 发布:有java基础学安卓 编辑:程序博客网 时间:2024/06/07 10:39
学习关联容器一章,看到map,稀稀松松已经看到第10章。基础东西学了一大堆,做个习题巩固一下。
问题如下:
代码如下:
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
#include <string>
#include <map>
#include <utility>
using namespace std;
int main()
{
ifstream in_file,res_file;
string line,str_first,str_name;
int int_date;
in_file.open("123.txt"); //文件格式为 第一列姓名,第二列名字,第三列生日
typedef pair<string,int> name_date;
typedef map<string,vector<name_date> > name_first;
name_first first_name;
vector<name_date> vec_con;
while (getline(in_file,line))
{
istringstream in_string(line);
while (in_string>>str_first>>str_name>>int_date)
{
pair<name_first::iterator,bool> pair_insert;
vec_con.push_back(make_pair(str_name,int_date));
pair_insert=first_name.insert(make_pair(str_first,vec_con)); /
if (!pair_insert.second)
{
pair_insert.first->second.push_back(make_pair(str_name,int_date));
}
}
vec_con.clear();
}
//insert成功,证明map中无此姓氏存储,失败则有存储,需要更新姓氏对应的vector
in_file.close();
for (name_first::iterator map_it = first_name.begin();
map_it != first_name.end(); map_it++)
{
cout<<map_it->first<<":"<<endl;
for (vector<name_date>::iterator vec_it = map_it->second.begin();
vec_it != map_it->second.end(); vec_it++)
{
cout<<vec_it->first<<"->"<<vec_it->second<<endl;
}
}
return 0;
}
- c++ primer 关联容器习题练习
- C++primer学习:关联容器练习(4)
- C++Primer第10章关联容器习题
- C++primer 关联容器
- 《C++primer》关联容器
- c++primer(第五版) 第十一章 关联容器习题答案
- C++Primer第五版 第11章 关联容器(练习解答)
- c++Primer笔记(十 关联容器)
- C ++ primer 中说的关联容器
- C++primer U10 读书笔记 关联容器
- 【足迹C++primer】36、使用关联容器
- 【足迹C++primer】37、关联容器概述
- c++primer(十)关联容器
- C++primer学习:关联容器(1)
- C++primer学习:关联容器(2)
- C++primer学习:关联容器(3)
- c++Primer,九,十,顺序容器,关联容器
- C++ primer 关联容器
- 2014年春节完成的学习
- CodeForces 386D Game with Points
- js中this的用法
- Apache Commons 工具集简介
- Windows 7 英文版操作系统中文软件乱码解决方法
- c++ primer 关联容器习题练习
- <MEMORY>Project Euler NO43
- #R#时间序列相关函数
- java的反射总结
- hive安装
- 利用Eclipse查看JDK源码
- java中excel的操作
- nyoj7(中位数的运用)
- 在sublime text 3中搭建C,C++语言开发环境