2013-04-29 99 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

相关问题