BOOST_FOREACH を使用して std::map を反復処理し、値を編集したいと思います。よくわかりません。
typedef std::pair<int, int> IdSizePair_t;
std::map<int,int> mmap;
mmap[1] = 1;
mmap[2] = 2;
mmap[3] = 3;
BOOST_FOREACH( IdSizePair_t i, mmap )
i.second++;
// mmap should contain {2,3,4} here
もちろん、参照による繰り返しではないため、これは何も変更しません。したがって、代わりにこの行を置き換えます (Boost ドキュメントの例に従って):
BOOST_FOREACH( IdSizePair_t &i, mmap )
コンパイラエラーが発生します:
error C2440: 'initializing' :
cannot convert from 'std::pair<_Ty1,_Ty2>' to 'IdSizePair_t &'
with
[
_Ty1=const int,
_Ty2=int
]
助言がありますか?