我在此代码中有错误
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
命令,因为当我使用普通迭代器(而不是reverse_iterator)时,它完美无缺。
感谢
答案 0 :(得分:0)
list::insert
仅需iterator
秒,而非reverse_iterator
秒。您可以通过调用reverse_iterator
将iterator
转换为base
:
mylist.insert((++ite).base(), Database->getPointer(namePoi));