//10.28.cpp
//建立作者及其作品的multimap容器
//以下的格式按姓名首字母的顺序输出作者及其作品:
//Author Names Beginning with 'A'
//Author,book,book,.......
//Author Names Beginning with 'B'
//...
#include<iostream>
#include<map>
#include<string>
using namespace std;
int main()
{
multimap<string,string> authors;
string author,work,searchItem;
//建立作者及其作品的multimap容器
do{
cout<<"Enter author name(Ctrl-z to end):"<<endl;
cin>>author;
if(!cin)
break;
cout<<"Enter author's works(Ctrl-z to end):"<<endl;
while(cin>>work)
authors.insert(make_pair(author,work));
cin.clear(); //读入了一位作者的所有作品后使流对象从新有效
}while(cin);
//输出multimap对象
typedef multimap<string,string>::iterator itType;
itType iter=authors.begin();
if(iter==authors.end()){
cout<<"empty multimap!"<<endl;
return 0;}
string currAuthor,preAuthor; //记录当前作者及其前一作者
do
{
currAuthor=iter->first;
if(preAuthor.empty()||currAuthor[0]!=preAuthor[0])
//如果出现了首字母不同的作者,则输出该首字母
cout<<"Author Names Beginning with '"
<<iter->first[0]<<"':"<<endl;
//输出作者
cout<<currAuthor;
//输出该作者所有作品
pair<itType,itType> pos=authors.equal_range(iter->first);
while(pos.first!=pos.second)
{
cout<<", "<<pos.first->second;
++pos.first;
}
cout<<endl; //输出了一个作者的所有作品后,换行
iter=pos.second; //iter指向下一作者
preAuthor=currAuthor; //将当当前作者设为前一作者
}while(iter!=authors.end());
return 0;
}
分享到:
相关推荐
c++primer第五版中文版课后答案(第12章)pdf格式,真正的c++primer习题集(第五版),用手机拍的,但是每个字都能看的很清楚
c++primer第五版中文版课后答案(第17章)pdf格式,真正的c++primer习题集(第五版),用手机拍的,但是每个字都能看的很清楚
c++primer第五版中文版课后答案(第18章)pdf格式,真正的c++primer习题集(第五版),用手机拍的,但是每个字都能看的很清楚
c++primer第五版中文版课后答案(第13章)pdf格式,真正的c++primer习题集(第五版),用手机拍的,但是每个字都能看的很清楚
C++Primer第五版习题答案+详解(完整版) C++Primer第五版习题答案+详解(完整版)
C++primer 课后答案,习题对帮助记忆、理解很重要。内容高清,全面,带有书签,
C++Primer 第四版课后习题解答(第1~18章完整答案)完整版 非扫描高清
C++Primer课后习题解答(第1~16章完整答案)清晰完整版
c++primer第五版中文版课后答案(第19章)pdf格式,真正的c++primer习题集(第五版),用手机拍的,但是每个字都能看的很清楚
C++ primer plus 答案,QT亲自运行成功,含有课后练习题,编程练习题。
C++ Primer习题集(第五版) , 带目录完整版。 --------------------------------------------------------------------------- 目录 第1章............................................................ 1 练习1.1 ...
c++primer第五版中文版课后答案(第11章)pdf格式,真正的c++primer习题集(第五版),用手机拍的,但是每个字都能看的很清楚
《C++ Primer Plus》 课后练习题 代码 希望学习过的朋友一起相互交流共同进步
C++Primer(第4版)_课后习题答案
C++Primer第一章例题及练习题答案源代码
C++Primer第一章例题及练习题答案
C++ Primer第四版习题(完整版) C++ Primer第四版习题(完整版)
C++ Primer Plus 编程练习源码工程 第15章 ,这是本人自己学习书籍时写的编程练习的源码工程,供大家参考交流。
此为C++ Primer第5版课后习题,讲解很全,很值得学习者在学习C++时 ,跑一跑书本上的代码,加深学习印象!