我有地图地图
std::map< int, std::map<string, double> > myMap;
std::map< int, std::map<string, double> >::iterator itr;
用:
迭代它 itr = myMap.find(nodeI);
if (itr == myMap.end())
{
exit(1) ;
}
导致错误:
error: no match for âoperator=â in âitr = ((const PushList*)this)->PushList::myMap.std::map<:_Key, _Tp, _Compare, _Alloc>::find [with _Key = int, _Tp = std::map<:std::basic_string<:char, std::char_traits<:char>, std::allocator<:char> >, double, std::less<:std::basic_string<:char, std::char_traits<:char>, std::allocator<:char> > >, std::allocator<:std::pair<:const std::basic_string<:char, std::char_traits<:char>, std::allocator<:char> >, double> > >, _Compare = std::less<:int>, _Alloc = std::allocator<:std::pair<:const int, std::map<:std::basic_string<:char, std::char_traits<:char>, std::allocator<:char> >, double, std::less<:std::basic_string<:char, std::char_traits<:char>, std::allocator<:char> > >, std::allocator<:std::pair<:const std::basic_string<:char, std::char_traits<:char>, std::allocator<:char> >, double> > > > >](((const int&)((const int*)((int*)nodeI))))â
如何迭代地图图?
答案 0 :(得分:4)
从您发布的错误中可以看出您是在类成员const
函数中执行此操作。 myMap
恰好是该班级的成员吗?如果是这样,您想要的是使用const_iterator
。你应该这样做,因为你不希望修改迭代元素的内容。