错误:“运算符+ 不匹配", 对于列表迭代器

2022-01-10 00:00:00 list iterator c++ stl

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

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 --.

相关文章