从C ++中特定位置的地图迭代器

问题描述 投票:4回答:2

我有一个元素映射和一个嵌套循环来对其进行迭代。但是我希望迭代器的行为像这样:

    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未定义任何帮助将不胜感激。 (请指出所有重复的链接,因为我找不到地图的链接。)谢谢!

c++ map iterator
2个回答
7
投票

std::map<K,V,C,A>::iteratorstd::map<K,V,C,A>::iterator,这意味着它既不提供bidirectional iterator,也不提供operator+(仅前缀和后缀形式的operator-operator++。)


1
投票

类似的东西也应该起作用。

© www.soinside.com 2019 - 2024. All rights reserved.