#include <iostream>
#include <string>
#include <map>
#include <vector>
#include <utility>
using namespace std;
//测试Map,往家庭里添加人员(C++ Primer 第11章 练习题11.7)
void TestMap();
int main(int argc, char **argv)
{
cout <<"********** map ********" <<endl;
map<string, size_t> mWord;
mWord["WE"] = 12;
mWord["WE"] += 10;
mWord["E"] = 10;
mWord["Good"]++;
mWord["WE"] += 100;
map<string, size_t>::iterator it;
for (it=mWord.begin(); it!=mWord.end();it++)
{
cout<<it->first <<" ocurs " <<it->second <<(it->second > 1 ? " times" : " time")<<endl;
}
cout <<endl << "***** map支持迭代器双向操作 *******" <<endl;
for (it=mWord.end(); it!=mWord.begin();)
{
it--;//map支持迭代器双向操作
cout<<it->first <<" ocurs " <<it->second <<(it->second > 1 ? " times" : " time")<<endl;
}
cout <<endl << "******** Start test map **********" <<endl;
TestMap();
cout <<endl << "******** Stop test map **********" <<endl;
cout<<endl<<endl;
system("pause");
return 0;
}
//测试Map,往家庭里添加人员
void TestMap()
{
map<string, vector<string>> mFamily;
vector<string> vFamilyName;
vFamilyName.push_back("冯爷");
vFamilyName.push_back("冯二爷");
vFamilyName.push_back("冯大爷");
vFamilyName.push_back("冯大娘");
mFamily["冯"] = vFamilyName;
vFamilyName.clear();
vFamilyName.push_back("王者荣耀");
vFamilyName.push_back("跑跑卡丁车");
vFamilyName.push_back("QQ农场");
mFamily["腾讯"] = vFamilyName;
map<string, vector<string>>::iterator itFamily;
for (itFamily = mFamily.begin(); itFamily != mFamily.end(); itFamily++)
{
cout <<endl <<itFamily->first <<" 家庭成员: "<<endl;
vector<string>::iterator itFamilyName;
for (itFamilyName = itFamily->second.begin(); itFamilyName != itFamily->second.end(); itFamilyName++)
{
cout <<*itFamilyName <<endl;
}
}
}