說我有一些使用迭代器來打印多重映射
typedef std::pair<userObject*,char> Bar;
std::multimap<int, Bar > Foo;
std::multimap<int, Bar >::iterator it = foo.begin();
我已經插入了幾個成員進入地圖,並想使用迭代其內容的遍歷。但是,嘗試第二行代碼產生no viable conversion from....
我知道錯誤是由Bar
是一對造成的。我寫了一個簡單的類,使用ints
來模擬行爲,一切都按預期工作。我需要提供一些模板類T嗎?定義行爲。
這裏是a link的源代碼看代碼。
錯誤消息是
no viable conversion from '__map_iterator<__tree_iterator<__value_type<int *, [...]>, std::__1::__tree_node<std::__1::__value_type<int *, std::__1::pair<Vertex *, char> >, void *> *, [...]>>' to '__map_iterator<__tree_iterator<__value_type<int, [...]>, std::__1::__tree_node<std::__1::__value_type<int, std::__1::pair<Vertex *, char> >, void *> *, [...]>>'
'foo.begin'(無parethesis) - 它是一個錯字或真正的代碼? – SergeyA
這實際上是一個錯字,謝謝! – Dev
請準備[MCVE](http://stackoverflow.com/help/mcve)。你在這裏發佈的代碼示例編譯得很好,只要你將'Foo'改爲'foo',這只是一個錯字。 Github上的代碼不完整,我們無法編譯它。 –