- #include <iostream> 
- #include <map> 
-   
- template <typename MapType> 
- class map_add_values { 
- private: 
-     MapType mMap; 
- public: 
-     typedef typename MapType::key_type KeyType; 
-     typedef typename MapType::mapped_type MappedType; 
-   
-     map_add_values(const KeyType& key, const MappedType& val) 
-     { 
-         mMap[key] = val; 
-     } 
-   
-     map_add_values& operator()(const KeyType& key, const MappedType& val) { 
-         mMap[key] = val; 
-         return *this; 
-     } 
-   
-     void to (MapType& map) { 
-         map.insert(mMap.begin(), mMap.end()); 
-     } 
- }; 
-   
- typedef std::map<int, int> Int2IntMap; 
-   
- void printMap(const Int2IntMap& map) { 
-     std::cout << "Contents of Map" << std::endl; 
-     std::cout << "===============" << std::endl; 
-     Int2IntMap::const_iterator mapIterator = map.begin(), 
-         mapIteratorEnd = map.end(); 
-     while (mapIterator != mapIteratorEnd) { 
-         std::cout << "(" << mapIterator->first << ", " << mapIterator->second << ")" << std::endl; 
-         ++mapIterator; 
-     } 
-     std::cout << std::endl; 
- } 
-   
- int main() { 
-     Int2IntMap testMap; 
-     map_add_values<Int2IntMap>(1,2)(3,4)(5,6).to(testMap); 
-     printMap(testMap); 
-     map_add_values<Int2IntMap>(10,20)(30,40)(50,60).to(testMap); 
-     printMap(testMap); 
- } 
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgoKdGVtcGxhdGUgPHR5cGVuYW1lIE1hcFR5cGU+CmNsYXNzIG1hcF9hZGRfdmFsdWVzIHsKcHJpdmF0ZToKICAgIE1hcFR5cGUgbU1hcDsKcHVibGljOgogICAgdHlwZWRlZiB0eXBlbmFtZSBNYXBUeXBlOjprZXlfdHlwZSBLZXlUeXBlOwogICAgdHlwZWRlZiB0eXBlbmFtZSBNYXBUeXBlOjptYXBwZWRfdHlwZSBNYXBwZWRUeXBlOwogICAgCiAgICBtYXBfYWRkX3ZhbHVlcyhjb25zdCBLZXlUeXBlJiBrZXksIGNvbnN0IE1hcHBlZFR5cGUmIHZhbCkKICAgIHsKICAgICAgICBtTWFwW2tleV0gPSB2YWw7CiAgICB9CiAgICAKICAgIG1hcF9hZGRfdmFsdWVzJiBvcGVyYXRvcigpKGNvbnN0IEtleVR5cGUmIGtleSwgY29uc3QgTWFwcGVkVHlwZSYgdmFsKSB7CiAgICAgICAgbU1hcFtrZXldID0gdmFsOwogICAgICAgIHJldHVybiAqdGhpczsKICAgIH0KICAgIAogICAgdm9pZCB0byAoTWFwVHlwZSYgbWFwKSB7CiAgICAgICAgbWFwLmluc2VydChtTWFwLmJlZ2luKCksIG1NYXAuZW5kKCkpOwogICAgfQp9OwoKdHlwZWRlZiBzdGQ6Om1hcDxpbnQsIGludD4gSW50MkludE1hcDsKCnZvaWQgcHJpbnRNYXAoY29uc3QgSW50MkludE1hcCYgbWFwKSB7CiAgICBzdGQ6OmNvdXQgPDwgIkNvbnRlbnRzIG9mIE1hcCIgPDwgc3RkOjplbmRsOwogICAgc3RkOjpjb3V0IDw8ICI9PT09PT09PT09PT09PT0iIDw8IHN0ZDo6ZW5kbDsKICAgIEludDJJbnRNYXA6OmNvbnN0X2l0ZXJhdG9yIG1hcEl0ZXJhdG9yID0gbWFwLmJlZ2luKCksCiAgICAgICAgbWFwSXRlcmF0b3JFbmQgPSBtYXAuZW5kKCk7CiAgICB3aGlsZSAobWFwSXRlcmF0b3IgIT0gbWFwSXRlcmF0b3JFbmQpIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgIigiIDw8IG1hcEl0ZXJhdG9yLT5maXJzdCA8PCAiLCAiIDw8IG1hcEl0ZXJhdG9yLT5zZWNvbmQgPDwgIikiIDw8IHN0ZDo6ZW5kbDsKICAgICAgICArK21hcEl0ZXJhdG9yOwogICAgfQogICAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsKfQoKaW50IG1haW4oKSB7CiAgICBJbnQySW50TWFwIHRlc3RNYXA7CiAgICBtYXBfYWRkX3ZhbHVlczxJbnQySW50TWFwPigxLDIpKDMsNCkoNSw2KS50byh0ZXN0TWFwKTsKICAgIHByaW50TWFwKHRlc3RNYXApOwogICAgbWFwX2FkZF92YWx1ZXM8SW50MkludE1hcD4oMTAsMjApKDMwLDQwKSg1MCw2MCkudG8odGVzdE1hcCk7CiAgICBwcmludE1hcCh0ZXN0TWFwKTsKfQ==
				
				
				
				
				
			 
			
				
			
			
				
	
		
		
	
	
		Contents of Map
===============
(1, 2)
(3, 4)
(5, 6)
Contents of Map
===============
(1, 2)
(3, 4)
(5, 6)
(10, 20)
(30, 40)
(50, 60)