⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 figure7-32.cpp

📁 这是清华出的这本经典的数据结构第三版上的随书例子。希望对大家有用。
💻 CPP
字号:
#include <iostream>#include <map>using namespace std;class Person {public:    Person(char *n = "", int a = 0) {        name = strdup(n);        age = a;    }    bool operator<(const Person& p) const {        return strcmp(name,p.name) < 0;    }    bool operator==(const Person& p) const {        return strcmp(name,p.name) == 0 && age == p.age;    }private:    char *name;    int age;    friend ostream& operator<< (ostream& out, const Person& p) {        out << "(" << p.name << ", " << p.age << ") ";        return out;    }};int main() {    pair<Person,char*> p[] =         {pair<Person,char*>(Person("Gregg",25),"Pittsburgh"),          pair<Person,char*>(Person("Ann",30),"Boston"),          pair<Person,char*>(Person("Bill",20),"Belmont")};    map<Person,char*> cities;    cities.insert(p[0]);    cities.insert(p[1]);    cities.insert(p[2]);    cities[Person("Kay",40)] = "New York";    cities["Jenny"] = "Newark";    cities.insert(map<Person,char*>::value_type(Person("Kay",40),"Detroit"));    cities.insert(pair<Person,char*>(Person("Kay",40),"Austin"));    map<Person,char*>::iterator i;    for (i = cities.begin(); i != cities.end(); i++)        cout << (*i).first << ' ' << (*i).second << endl;    // output:    //   (Ann,30) Boston     //   (Bill,20) Belmont     //   (Gregg,25) Pittsburgh     //   (Jenny,0) Newark     //   (Kay, 40) New York    cities[p[1].first] = "Chicago";    for (i = cities.begin(); i != cities.end(); i++)        cout << (*i).first << ' ' << (*i).second << endl;    // output:    //   (Ann,30) Chicago     //   (Bill,20) Belmont     //   (Gregg,25) Pittsburgh     //   (Jenny,0) Newark     //   (Kay, 40) New York    multimap<Person,char*> mCities;    mCities.insert(p[0]);    mCities.insert(p[1]);    mCities.insert(p[2]);    mCities.insert(pair<Person,char*>(Person("Kay",40),"Austin"));    mCities.insert(pair<Person,char*>(Person("Kay",40),"Austin"));    mCities.insert(pair<Person,char*>(Person("Kay",40),"Detroit"));    multimap<Person,char*>::iterator mi;    for (mi = mCities.begin(); mi != mCities.end(); mi++)        cout << (*mi).first << ' ' << (*mi).second << endl;    // output:    //   (Ann,30) Boston     //   (Bill,20) Belmont     //   (Gregg,25) Pittsburgh     //   (Kay, 40) Austin    //   (Kay, 40) Austin    //   (Kay, 40) Detroit    (*(mCities.find(Person("Kay",40)))).second = "New York";    for (mi = mCities.begin(); mi != mCities.end(); mi++)        cout << (*mi).first << ' ' << (*mi).second << endl;    // output:    //   (Ann,30) Boston     //   (Bill,20) Belmont     //   (Gregg,25) Pittsburgh     //   (Kay, 40) New York    //   (Kay, 40) Austin    //   (Kay, 40) Detroit    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -