10-1,题很简单,就当熟悉容器的各种操作吧。。用了三种创建pair对象的方法,两种与答案不同。。
// 2014-03-10-16.13
#include<iostream>
#include<fstream>
#include<cstdlib>
#include<vector>
#include<iomanip>
#include<algorithm>
#include<map>
using namespace std;
int main()
{
string word2="wo";
string word3="ai";
string word4="ni";
int aa=2;
int bb=5;
int cc=0;
vector<pair<string,int> >vec;
vec.push_back(make_pair(word2,aa));
vec.push_back(pair<string,int>(word3,bb));
vec.push_back(map<string,int>::value_type(word4,cc));
typedef vector<pair<string,int> > TT;
TT::iterator tt=vec.begin();
while(tt!=vec.end())
{
cout<<tt->first<<"\t"<<tt->second<<endl;
++tt;
}
return 0;
}
10-18还是增加熟练度吧
#include<iostream>
#include<vector>
#include<map>
using namespace std;
int main()
{
map<string,vector<string> > Fam;
string word2="佳俊";
string word3="佳3";
string word5="佳俊5";
vector<string> vec;
vec.push_back(word2);
vec.push_back(word3);
vec.push_back(word5);
Fam["王"]=vec;
word2="天使";
word3="天使3";
word5="天使6";
Fam["武"]=vec;
vec.push_back(word2);
vec.push_back(word3);
vec.push_back(word5);
map<string,vector<string> >::iterator iter=Fam.begin();
for(;iter!=Fam.end();++iter)
for(vector<string>::iterator it2=iter->second.begin();
it2!=iter->second.end();++it2)
{
cout<<iter->first<<":";
cout<<*it2<<endl;
}
cout<<endl;
string word;
cout<<"输入姓:"<<endl;
cin>>word;
map<string,vector<string> >::iterator ret=Fam.find(word);
if(ret!=Fam.end())
{
vector<string>::iterator it3=(ret->second).begin();//这里看了下答案。。。
while(it3!=ret->second.end())
cout<<*it3++<<endl;
}
else cout<<"没有这家人哇。。"<<endl;
return 0;
}
10-19没啥说的
#include<iostream>
#include<vector>
#include<map>
using namespace std;
int main()
{
map<string,vector<pair<string,string> > > Fam;
string word2="佳俊";
string word22="1993";
string word3="佳3";
string word33="1945";
string word5="佳俊5";
string word55="1985";
vector<pair<string,string> > vec;
vec.push_back(make_pair(word2,word22));
vec.push_back(make_pair(word3,word33));
vec.push_back(make_pair(word5,word55));
Fam["王"]=vec;
vector<pair<string,string> > vec2;
word2="天使";
word22="7854";
word3="天使3";
word33="8752";
word5="天使6";
word55="4523";
vec2.push_back(make_pair(word2,word22));
vec2.push_back(make_pair(word3,word33));
vec2.push_back(make_pair(word5,word55));
Fam["武"]=vec2;
map<string,vector<pair<string,string> > >::iterator iter=Fam.begin();
for(;iter!=Fam.end();++iter)
for(vector<pair<string,string> >::iterator it2=iter->second.begin();
it2!=iter->second.end();++it2)
{
cout<<iter->first<<":";
cout<<it2->first<<"---"<<it2->second<<endl;
}
cout<<endl;
string word;
cout<<"输入姓:"<<endl;
cin>>word;
map<string,vector<pair<string,string> > >::iterator ret=Fam.find(word);
if(ret!=Fam.end())
{
vector<pair<string,string> >::iterator it3=(ret->second).begin();//这里看了下答案。。。
while(it3!=ret->second.end())
{cout<<it3->first<<"---"<<it3->second<<endl;
++it3;}
}
else cout<<"没有这家人哇。。"<<endl;
cout<<"用用insert函数:"<<endl;
cout<<"输入姓:";
cin>>word;
pair<string,string>pp("天使","7854");
vector<pair<string,string>>vvv;
vvv.push_back(pp);
pair<map<string,vector<pair<string,string> > >::iterator ,bool> tt=
Fam.insert(make_pair(word,vvv));
if(tt.second)cout<<"插进去了。。"<<endl;
else cout<<"没插进去。。"<<endl;
return 0;
}