您的位置:首页 > 编程语言 > C语言/C++

C++ Primer课后练习11.3,11.4,11.7,11.8,11.11,11.12,11.13,11.14

2017-01-07 16:26 465 查看
//课后练习11.3&11.4
#include
#include
#include
#include
#include
#include
using namespace std;
int main(void)
{map wordcount;
//string到size_t的空map
string word;
while (cin >> word)
{
for (auto & ss : word)ss = tolower(ss);
word.erase(find_if(word.begin(), word.end(), [](char & ch){return ispunct(ch); }));
++wordcount[word];//提取word的计数器,并每个加一}
for (const auto & ss : wordcount)
cout << ss.first << " occurs " << ss.second<< ((ss.second > 1) ? " times" : " time" )<< endl;
}
/********************************************************************/
//课后练习11.7
#include
#include
#include
#include
using namespace std;
int main(void)
{
map<string, vector> family;
string familyname,offspringname;
while ([&]()->bool{
cout << "please enter the family name!" << endl;
return cin >> familyname && familyname!="AA"; }())
{
cout << "please enter the offspring's name" << endl;
while (cin >> offspringname && offspringname!="AA")
{
family[familyname].push_back(offspringname);
}

}
for (auto ss : family)
{
cout << ss.first << ": ";
for (auto ss1 : ss.second)
cout << ss1 << " ";
cout << endl;
}

}
/*********************************************************************************************************************************/
//练习11.8
#include
#include
#include
using namespace std;
int main(void)
{
vector vec;
string word;
while (cin >> word)
{
if (find(vec.begin(), vec.end(), word) != vec.end())
cout << "Hey! man ,what the fuck are you doing now!" << endl;
else
vec.push_back(word);
}
for (auto ss : vec)
cout << ss << " ";
cout << endl;
}/*****************************************************************************************************************************/
//练习11.11
#include
#include
#include
#include"sales_data.h"
using namespace std;
bool compareIsbn(const Sales_data & rh1, const Sales_data &rh2)
{
return rh1.isbn() > rh2.isbn();
}
int main(void)
{
auto comparetype1()->bool(*)(const Sales_data & rh1, const Sales_data &rh2);
using comparetype2 = bool(*)(const Sales_data & rh1, const Sales_data &rh2);
multisetbookstore(compareIsbn);
}
/*************************************************************************************************************/
//练习11.12&11.13
#include
#include
#include
#include
using namespace std;
int main()
{
string word;
int number;
vector<pair> vec1,vec2,vec3;
while ([&word,&number]()->bool{
cout << "please enter the fuck string and fuck num" << endl;
return  cin >>word>>number && word!="AA";
}())
{
pair p1(word, number);//花括号初始化
vec1.push_back(p1);

pair p2 = { word, number };//小括号初始化
vec2.push_back(p2);
vec3.push_back(make_pair(word, number));//函数初始化
}
for (auto ss : vec1)
cout << ss.first << ": " << ss.second;
cout << endl;
for (auto ss : vec2)
cout << ss.first << ": " << ss.second;
cout << endl;
for (auto ss : vec3)
cout << ss.first << ": " << ss.second;
cout << endl;
}
/*********************************************************************************************************************/
//课后练习11.14
#include
#include
#include
#include
#include
using namespace std;
int main(void)
{
map<string, vector<pair>> family;
string familyname, offspringname,birthday;
while ([&familyname]()->bool{
cout << "please enter the family name!" << endl;
return cin >> familyname && familyname != "AA"; }())
{
cout << "please enter the youngman's name and birthday" << endl;
while (cin >> offspringname>>birthday && offspringname != "AA")
{
family[familyname].push_back(make_pair(offspringname, birthday));
}

}
for (auto ss : family)
{
cout << ss.first << ": ";
for (auto ss1 : ss.second)
{
cout << ss1.first << " "<<ss1.second<<" ";
}
cout << endl;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: