我有一个元素映射和一个嵌套循环来对其进行迭代。但是我希望迭代器的行为像这样:
map<int,int>::iterator it;
map<int,int>::iterator it1;
bool flag=false;
for(it=m.begin();it!= m.end()-1;it++)
{
for(it1 = it+1;it1 != m.end();it1++)
{
if((it->first < it1->first)&&(it->second > it1->second))
{
flag=true;
break;
}
}
}
[基本上,外循环应该从最后一个开始终止,但是只有一个位置,并且内循环必须从外循环迭代器所在的位置开始迭代。但是此代码似乎无效。(No匹配+在它+1未定义任何帮助将不胜感激。 (请指出所有重复的链接,因为我找不到地图的链接。)谢谢!
std::map<K,V,C,A>::iterator
是std::map<K,V,C,A>::iterator
,这意味着它既不提供bidirectional iterator,也不提供operator+
(仅前缀和后缀形式的operator-
和operator++
。)
类似的东西也应该起作用。