[英]How to iterate a C++ map of maps
我有一張地圖地圖
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) ;
}
導致錯誤:
\n 錯誤:不匹配âoperator=âin \n ârtr=((const PushList *)this) - > PushList :: myMap.std :: map <:_ Key,_Tp,_Compare,_Alloc> :: find \n\n [with _Key = int,_Tp = std :: map <:std :: basic_string <:char,std :: char_traits <:char>, \n std :: allocator <:char >>,double,std :: less <:std :: basic_string <:char, \n 的std :: char_traits <:炭> \n std :: allocator <:char >>>,std :: allocator <:std :: pair <:const std :: basic_string <:char, \n std :: char_traits <:char>,std :: allocator <:char >>,double >>>,_Compare = \n std :: less <:int>,_ Alloc = \n std :: allocator <:std :: pair <:const int,std :: map <:std :: basic_string <:char, \n 的std :: char_traits <:炭> \n std :: allocator <:char >>,double,std :: less <:std :: basic_string <:char, \n 的std :: char_traits <:炭> \n std :: allocator <:char >>>,std :: allocator <:std :: pair <:const std :: basic_string <:char, \n std :: char_traits <:char>,std :: allocator <:char >>,double >>>>>](((const \n int&)((const int *)((int *)nodeI))))â\n
我該如何迭代地圖?
從您發布的錯誤中可以看出,您是在類成員const
函數中執行此操作。 myMap
恰好是該類的成員? 如果是這樣,你想要的是使用const_iterator
。 你應該這樣做,因為你不期望修改迭代元素的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.