我有一个std::map
映射到没有默认构造函数的对象。
我需要一个迭代器迭代地图,但是迭代器需要一个默认的构造函数,我该如何解决呢?
std::map<MyClass1, MyClass2> MyMap; //No default constructor needed
std::pair<MyClass1, MyClass2> MapIterator; //Need default constructor to construct std::pair
答案 0 :(得分:3)
为什么你认为pair
是地图迭代器?在您的情况下,std::map<MyClass1, MyClass2>::iterator
是地图迭代器。它是默认的可构造的。