2017-06-23 55 views
0

我有雙地圖對於雙地圖

map <string, set <string>> a; 

,並希望映射在字典順序輸出。我嘗試以下代碼:

map <string, set <string>> a;  
for (auto pair = a.begin(); pair != a.end(); pair++) { 
    cout << pair->first << " - "; 
    for (auto value = pair->second->begin(); value != pair->second->end(); value++) { 
     cout << *value << " " << endl; 
    } 
} 

但是,此代碼無效。我得到的錯誤是pair必須有指針類型。怎麼了?

+1

'成對> second.begin()'' –

+0

值=成對>二線>結束() ' - >'value!= pair-> second.end()' – RoiHatam

+0

'pair'對迭代器來說是一個壞名字,' - > second'不是迭代器,而是一個引用。 – alfC

回答

2

,如果你想使用C++ 11 ...這應該工作:

map <string, set <string>> a; 
for (auto & pair : a) { 
    cout << pair.first << " - "; 
    for (auto & value : pair.second) { 
     cout << value << " " << endl; 
    } 
} 
+0

'(const auto&pair:a)'將避免創建對的副本。 –