insert和reverse_iterator出错

时间:2016-01-06 00:21:50

标签: c++ c++11

我在此代码中有错误

void f(list<CClass*> mylist,CP* Database,string namePoi){
//some code
list <CClass*>::reverse_iterator ite;
            for (ite=mylist.rbegin(); ite!= mylist.rend(); ite++) {
                    mylist.insert(++ite,Database->getPointer(namePoi));//compiler error
                }
}

错误是  :没有匹配函数来调用'std :: list :: insert(std :: list :: reverse_iterator&amp;,CPOI *)' 第Database->getPointer(namePoi)行给出正确的输出,但我认为我没有使用正确的insert命令,因为当我使用普通迭代器(而不是rev​​erse_iterator)时,它完美无缺。 感谢

1 个答案:

答案 0 :(得分:0)

list::insert仅需iterator秒,而非reverse_iterator秒。您可以通过调用reverse_iteratoriterator转换为base

mylist.insert((++ite).base(), Database->getPointer(namePoi));