//课后练习11.3&11.4 #include<iostream> #include<map> #include<set> #include<string> #include<algorithm> #include<cctype> using namespace std; int main(void) {map<string size_t=""> 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<iostream> #include<map> #include<vector> #include<string> using namespace std; int main(void) { map<string, vector<string>> 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<vector> #include<string> #include<iostream> using namespace std; int main(void) { vector<string> 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<iostream> #include<set> #include<list> #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); multiset<sales_data comparetype2="">bookstore(compareIsbn); } /*************************************************************************************************************/ //练习11.12&11.13 #include<iostream> #include<string> #include<utility> #include<vector> using namespace std; int main() { string word; int number; vector<pair<string int="">> vec1,vec2,vec3; while ([&word,&number]()->bool{ cout << "please enter the fuck string and fuck num" << endl; return cin >>word>>number && word!="AA"; }()) { pair<string int=""> p1(word, number);//花括号初始化 vec1.push_back(p1); pair<string int=""> 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<iostream> #include<map> #include<vector> #include<string> #include<utility> using namespace std; int main(void) { map<string, vector<pair<string string="">>> 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; } } </string></utility></string></vector></map></iostream></string></string></string></vector></utility></string></iostream></sales_data></list></set></iostream></string></iostream></string></vector></string></string></vector></map></iostream></string></cctype></algorithm></string></set></map></iostream>