2013-04-29 48 views
-2

我有一個std::map映射到沒有默認構造函數的對象。 我需要一個迭代器遍歷映射,但迭代器需要一個默認的構造函數,我該如何解決這個問題?std :: pair iterator沒有默認構造函數

std::map<MyClass1, MyClass2> MyMap; //No default constructor needed 
std::pair<MyClass1, MyClass2> MapIterator; //Need default constructor to construct std::pair 
+3

恩,地圖迭代器不是簡單的一對。我認爲你需要'std :: map :: iterator'或者'std :: map :: const_iterator'。 – 2013-04-29 13:57:32

+0

你爲什麼顯式地試圖構造一個迭代器?你可以使用std :: map :: iterator。 – rohitsan 2013-04-29 13:57:47

回答

3

爲什麼你認爲pair是一個地圖迭代器?在你的情況下,std::map<MyClass1, MyClass2>::iterator是一個映射迭代器。它是默認可構造的。

+0

謝謝你們,這很有幫助。我只是很愚蠢。大聲笑 – cynric4sure 2013-04-29 14:11:57

相關問題