欢迎来到天天文库
浏览记录
ID:41550548
大小:173.19 KB
页数:26页
时间:2019-08-27
《CPrimer第10章-关联容器-课后习题答案》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、helloworldaauy3晴按任意犍继续・・第10章关联容器1.编写程序读入一些列string和int型数据,将每一组存储在一个pair对象中,然后将这些pair对象存储在vector容器里。//ll.16_10.l_pair.cpp:定义控制台应用程序的入口点。//#include"stdafx.h"#inelude#inelude#inelude#ineludeusingnamespacestd;int_tmain(intargcz_
2、TCHAR*argv[]){stringstr;intiVal;cout«”tlnputsomepaircontents(pair)(AZtoend):N;vector>pairVec;while(cin>>str»iVal)pairVec.push_back(pair(str,iVal));cout«”tThecontentofpairVecis:”;for(vector>::i
3、teratorit=pairVec.begin();it!=pairVec.end();++it){cout«it->first«11"«it->second«endl;}system(,,pausen);return0;c«e:hhvhhvprogra>l1.16_10.l_pairdebugl1.16_10.l_pair.exeInputsomepairconpair〉<^Ztoend〉:Iiello1world2aauy3rzThecontentofpairUecis:1
4、2.在前一题屮,至少可使用三种方法创建pair对象。编写三个版本的程序,分别采用不同的方法来创建pair对象。你认为哪一种方法更易于编写和理解,为什么?stringstr;intiVal;vector>pairVec;pairnewPair;while(cin»str»iVal){//firstmethodpairVec.push_back(pair(str,iVal));//thesecondmethodnewPair=make
5、_pair(str,iVal);pairVec.push_back(newPair);}//thirdmethodwhile(cin>>newPair.first»newPair.second){pairVec.push_back(newPair);}第二种方法更好一些,更容易阅读和理解。因为它调用了make_pair函数,可以明确地表明确实生成了pair对象这一彳亍为。3•描述关联容器和顺序容器的差别。两者的本质差别在于:关联容器通过键key存储和读取元素,而顺序容器则通过元素在容器屮的位置顺序存储和访问元素
6、。4.举例说明list^vector、deque、map以及set类型分别使用的情况。list类型适用于需要在容器的屮间位置插入和删除元素的情况,如以无序的方式读入一系列学生的数据;vector类型适用于需要随机访问元素的情况。如:在学号为1.」的学生中,访问第x学号的学生的信息。deque类型适用于在容器的尾部或首部有插入和删除元素情况。如:对服务窗口先來先服务的情况。map适用于需要key-value对的集合的情况。女口:字典电和话簿的建立和使用。set类型适用于使用键集合的情况。例如,黑名单的建立和使用。
7、5.定义一个Map对象,将单词与一个list对象关联起来,该list对象存储对应的单词可能出现的行号。map>wordLines;6•可否定义一个map对彖以vectorvint>::interator为键关联int型对象?如果以list::iterator关联int型对象呢?或者,以pair关联int?对于每种情况,如果允许,请解释其原因。可以定义一个map对象以vector::iterator和pair为键
8、关联int型对象。不能定义第二种情况,因为键类型必须支持v操作,而list容器的迭代器类型不支持v操作。pair关联int可以。7.对于以int型对象为索引关联vector型对彖的map容器,它的mapped_type。key_type和value_type分别是什么?分另lj是:vectorvint>,int和pair
此文档下载收益归作者所有