我想打印輸入我的地圖C++的指針
map<string, Ort*> Hashtable;
的關鍵地圖的輸出是一個字符串(郵編從市) 的OBJEKT的Ort *包含名稱(字符串)和x,y座標(雙)。
我嘗試打印的地圖:
for (it = Hashtable.begin(); it != Hashtable.end(); it++) {
cout << it->first << " " << it->second->GetOrtsname()
<< " (" << it->second->GetPosX() << " " << it->second->GetPosY() << ")" << endl;
}
誤差輸出:
error: no match for ‘operator=’ (operand types are ‘std::map<std::basic_string<char>, Ort*>::iterator {aka std::_Rb_tree_iterator<std::pair<const std::basic_string<char>, Ort*> >}’ and ‘std::map<std::basic_string<char>, Ort*>::const_iterator {aka std::_Rb_tree_const_iterator<std::pair<const std::basic_string<char>, Ort*> >}’)
for (it = Hashtable.begin(); it != Hashtable.end(); it++) {
好像我瞎真正讀取錯誤輸出 感謝juanchopanza
解決方案:
map<string, Ort*>::const_iterator it;
您需要將'it'設爲'const_iterator'。 – juanchopanza
非常感謝juanchpanza 你能否解釋爲什麼'它'需要是一個const_iterator? – newclear
因爲你的映射是'const',或者你正在通過'const'引用來訪問它。 – juanchopanza