错误:“不匹配运算符+", 对于列表迭代器 [英] Error: "no match for operator+" , for list iterator

查看:17
本文介绍了错误:“不匹配运算符+", 对于列表迭代器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

对于下面的代码,我在行的标题中收到错误

For the code below, i am getting the error in title for line

while((*(It2 + code)).exists){


void locatetohashtable(std::list<Element> elist,
                       int *m,std::list<Element>& table,
                       std::list<std::string>& keylist )
{        
    std::list<Element>::iterator It2=table.begin();
    int i=0;
    int k=0;
    std::list<Element>::iterator It;
    for(It = elist.begin(); It != elist.end(); ++It)
    {
        int code=hash_func(stringIntValue((*It).name),*m,i);
        while((*(It2 + code)).exists){
            i++;
        }
        table.insert(*(It2+i), (*It));
        keylist.insert(keylist.begin(),(*It).name);
        k++;
    }
}

对于 ++It

问题出在哪里?

推荐答案

std::listiterator 是双向的,所以不支持 +(int).唯一支持的移动操作是 ++--.

An iterator for an std::list is bidirectional, so it does not support +(int). The only supported move operations are ++ and --.

这篇关于错误:“不匹配运算符+", 对于列表迭代器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆