C++ 无默认构造函数的成对迭代器

C++ 无默认构造函数的成对迭代器,c++,stdmap,std-pair,C++,Stdmap,Std Pair,我有一个std::map映射到没有默认构造函数的对象。 我需要一个迭代器来迭代映射,但是迭代器需要一个默认构造函数,我如何解决这个问题 std::map<MyClass1, MyClass2> MyMap; //No default constructor needed std::pair<MyClass1, MyClass2> MapIterator; //Need default constructor to construct std::pair std::map

我有一个
std::map
映射到没有默认构造函数的对象。 我需要一个迭代器来迭代映射,但是迭代器需要一个默认构造函数,我如何解决这个问题

std::map<MyClass1, MyClass2> MyMap; //No default constructor needed
std::pair<MyClass1, MyClass2> MapIterator; //Need default constructor to construct std::pair
std::map MyMap//不需要默认构造函数
std::成对映射器//需要默认构造函数来构造std::pair

为什么您认为
对是映射迭代器?在您的例子中,
std::map::iterator
是一个map迭代器。它是默认可构造的。

Um,映射迭代器不仅仅是一对。我认为您需要
std::map::iterator
std::map::const_iterator
。为什么要显式地构造迭代器?您可以使用std::map::iterator。