C++ Primer 11.2.1节编程练习


练习11.7 定义一个map,关键字是家庭的姓,值是一个vector,保存家中孩子(们)的名,编写代码,实现添加新的家庭以及向已有家庭中添加新的孩子

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

using namespace std;

int main()
{
    map> family;
    cout << "New family or new child? f/c" << endl;
    string option, family_name;
    while(cin >> option){
        if(option=="f"){
            cout << "Please enter family name:" << endl;
            cin >> family_name;
            family[family_name];
        }else if(option=="c"){
            cout << "Which family?" << endl;
            cin >> family_name;
            string child_name;
            cout << "Please enter child's name:" << endl;
            cin >> child_name;
            family[family_name].push_back(child_name);
        }else{
            cerr << "Please enter correct option!" << endl;
        }
        cout << "New family or new child? f/c" << endl;
    }
    for(auto i=family.begin();i!=family.end();++i){
        cout << (*i).first << " ";
        for(auto j=(*i).second.begin();j!=(*i).second.end();++j){
            cout << *j << " ";
        }
        cout << endl;
    }
    return 0;
}

编写一个程序,在一个vector而不是一个set中保存不重复的单词

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

using namespace std;

int main()
{
    vector words;
    string word;
    while(cin >> word){
        if(find(words.begin(), words.end(), word)!=words.end()){
            continue;
        }else{
            words.push_back(word);
        }
    }
    for_each(words.begin(), words.end(), [](string i){cout << i << " ";});
    cout << endl;
    return 0;
}

文章作者: Qin Jiahe
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Qin Jiahe !
评论
  目录