- #include <iostream> 
- #include <map> 
-   
- class ReportCard 
- { 
-    //private:  this is the default anyway for a class 
-    public: //made to be able to print the internals below. 
-         std::map<std::string, double> m_report_card; 
-   
-    public: 
-   
-   
-         /* this returns an instance of the std::map. The map is copied and  
-         returned, so any modifications will not affect m_report_card 
-         std::map<std::string, double> getReportCardInstance() 
-         { 
-             return m_report_card; 
-         } 
-   
-         if you want to do this, return std::map<std::string, double>&. 
-         std::map<std::string, double>& getReportCardInstance() 
-         { 
-             return m_report_card; 
-         } 
-         */ 
-   
-         // better solution is to have a method to add the report 
-   
-         void add_report(const std::string& first,double second) 
-         { 
-             m_report_card[first] = second; 
-         }   
-   
- }; 
-   
-   
- int main() { 
-     ReportCard rc; 
-     rc.add_report("Percy",1.0); 
-     rc.add_report("Pig",2.0); 
-   
-     for(auto internal_report_card : rc.m_report_card) 
-     { 
-         std::cout << internal_report_card.first << ", "  
-                   << internal_report_card.second << std::endl; 
-     } 
-   
-     return 0; 
- } 
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgoKY2xhc3MgUmVwb3J0Q2FyZAp7CiAgIC8vcHJpdmF0ZTogIHRoaXMgaXMgdGhlIGRlZmF1bHQgYW55d2F5IGZvciBhIGNsYXNzCiAgIHB1YmxpYzogLy9tYWRlIHRvIGJlIGFibGUgdG8gcHJpbnQgdGhlIGludGVybmFscyBiZWxvdy4KICAgICAgICBzdGQ6Om1hcDxzdGQ6OnN0cmluZywgZG91YmxlPiBtX3JlcG9ydF9jYXJkOwoKICAgcHVibGljOgoKCiAgICAgICAgLyogdGhpcyByZXR1cm5zIGFuIGluc3RhbmNlIG9mIHRoZSBzdGQ6Om1hcC4gVGhlIG1hcCBpcyBjb3BpZWQgYW5kIAogICAgICAgIHJldHVybmVkLCBzbyBhbnkgbW9kaWZpY2F0aW9ucyB3aWxsIG5vdCBhZmZlY3QgbV9yZXBvcnRfY2FyZAogICAgICAgIHN0ZDo6bWFwPHN0ZDo6c3RyaW5nLCBkb3VibGU+IGdldFJlcG9ydENhcmRJbnN0YW5jZSgpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gbV9yZXBvcnRfY2FyZDsKICAgICAgICB9CgogICAgICAgIGlmIHlvdSB3YW50IHRvIGRvIHRoaXMsIHJldHVybiBzdGQ6Om1hcDxzdGQ6OnN0cmluZywgZG91YmxlPiYuCiAgICAgICAgc3RkOjptYXA8c3RkOjpzdHJpbmcsIGRvdWJsZT4mIGdldFJlcG9ydENhcmRJbnN0YW5jZSgpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gbV9yZXBvcnRfY2FyZDsKICAgICAgICB9CiAgICAgICAgKi8KCiAgICAgICAgLy8gYmV0dGVyIHNvbHV0aW9uIGlzIHRvIGhhdmUgYSBtZXRob2QgdG8gYWRkIHRoZSByZXBvcnQKCiAgICAgICAgdm9pZCBhZGRfcmVwb3J0KGNvbnN0IHN0ZDo6c3RyaW5nJiBmaXJzdCxkb3VibGUgc2Vjb25kKQogICAgICAgIHsKICAgICAgICAgICAgbV9yZXBvcnRfY2FyZFtmaXJzdF0gPSBzZWNvbmQ7CiAgICAgICAgfSAgCgp9OwoKCmludCBtYWluKCkgewogICAgUmVwb3J0Q2FyZCByYzsKICAgIHJjLmFkZF9yZXBvcnQoIlBlcmN5IiwxLjApOwogICAgcmMuYWRkX3JlcG9ydCgiUGlnIiwyLjApOwoKICAgIGZvcihhdXRvIGludGVybmFsX3JlcG9ydF9jYXJkIDogcmMubV9yZXBvcnRfY2FyZCkKICAgIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgaW50ZXJuYWxfcmVwb3J0X2NhcmQuZmlyc3QgPDwgIiwgIiAKICAgICAgICAgICAgICAgICAgPDwgaW50ZXJuYWxfcmVwb3J0X2NhcmQuc2Vjb25kIDw8IHN0ZDo6ZW5kbDsKICAgIH0KCiAgICByZXR1cm4gMDsKfQ==