13.9 上机实践习题
1.使用vector容器,进行数据动态增加和删除,并输出中间结果。
【提示】上述题目主要是要求读者熟悉STL中的vector和迭代器的相关知识,重点是掌握迭代器的使用。
【关键代码】
01 void disp(vector<int>&x)//定义disp函数用以输出容器对象所有元素 02 { 03 unsigned int i=0; 04 for(;i<x. size();i++) 05 { 06 cout<<x[i]<<""; 07 } 08 } 09 //主函数代码 10 vector<int>obD(5,0);//创建一个vector<int>容器对象 11 vector<int>:iterator pD=obD. end();//创建迭代器pD 12 pD=obD. insert(pD,1);//在尾部插入元素1,并使迭代器指向新插入的1 13 disp(obD); 14 cout<<endl; 15 obD. insert(pD,2,3);//在新插入的元素1之前插入两个元素3 16 disp(obD); 17 iter=obL. erase(iter);//抹掉第2个元素,iter指向第3个元素 18 disp(obL); 19 cout<<endl; 20 obL. erase(iter,obL.end()); 21 disp(obD); 22 cout<<endl;
2.定义map和multimap容器,并插入数据和输出结果。
【提示】上述题目主要是要求读者熟悉STL中map和multimap容器的相关知识,重点是掌握map和multimap容器的使用。
【关键代码】
01 pair<int,string>sz[2]={pair<int,string>(1,"A"),pair<int,string>(2,"B")}; 02 pair<int,string>t(2,"X"); 03 map<int,string>obM(sz,sz+2); 04 map<int,string>:iterator itM=obM. begin(); 05 pair<map<int,string>:iterator,bool>res=obM. insert(t); 06 if(res. second)//判断是否插入成功 07 cout<<"插入成功"<<endl; 08 else 09 cout<<"已包含关键字与t相同的元素:"<<(*res.first).second<<endl; 10 multimap<int,string>obDM(sz,sz+2);//基于sz创建multimap对象obDM 11 //创建multimap<int,string>类内迭代器 12 multimap<int,string>:iterator itDM=obDM. begin(); 13 itDM=obDM. insert(t);//执行插入操作 14 cout<<"插入的元素为:"<<(*itDM).second<<endl;