1

私は地図の地図を持っています

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) ;
   }

エラーが発生します:

      エラー: 'operator=' に一致しません
      â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))))â

マップのマップを反復するにはどうすればよいですか?

4

1 に答える 1

4

const投稿したエラーから、クラスメンバー関数内からこれを行っていることがわかります。myMapそのクラスのメンバーになる可能性はありますか?もしそうなら、あなたが望むのはconst_iterator代わりに使うことです。反復された要素の内容を変更することを期待していないため、とにかくそれを行う必要があります。

于 2011-10-13T05:30:01.107 に答える