簡體   English   中英

如何迭代C ++地圖的地圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM