【发布时间】:2016-08-28 02:41:26
【问题描述】:
我有一个从 const 函数返回的名为 assets 的地图,我使用 const_iterator 来获取地图的子集,如下所示:
std::map<int, Asset>::const_iterator start = assets.begin();
start += 5;
......
但我收到错误:error: no match for ‘operator+=’ (operand types are ‘std::map<int, Asset>::const_iterator {aka std::_Rb_tree_const_iterator<std::pair<const int, Asset> >}’ and ‘int’)
【问题讨论】:
-
重复的大约是
std::list,但问题完全一样:std::map有双向运算符,不支持这种类型的算术运算。您需要一次增加一个步骤。