列表迭代器不可取消引用
List Iterator not dereferencable
我一直在寻找迭代器遇到的相同问题;我发现很多主题的标题几乎相同,问题相似,但我的问题有点不同。
我正在尝试在特定位置获取*迭代器,但出现错误:运行时"列出不可延迟的迭代器",这是我的代码:
CompetidorFormula2000* retornarCompetidorF2000(int pos){
list<Competidor*>::iterator itr=miLista.begin();
CompetidorFormula2000* f1=new CompetidorFormula2000();
if(pos>0 && pos<=miLista.size()){
advance(itr,pos);
}
f1=(CompetidorFormula2000*) (*itr);
return f1;
delete f1;
}
如果pos
等于miLista.size()
那么你会得到一个迭代器到列表的末尾,与调用miLista.end()
时得到的迭代器相同。列表末尾的迭代器不可取消引用。
相关文章:
- C++取消引用指针.为什么会发生变化
- 使用取消引用的指针的多态性会产生意外的结果.为什么?
- 取消引用运算符不能重载
- 了解通过引用传递取消引用指针时C++堆/堆栈分配
- 对于实际指针类型,用于检测类似指针(可取消引用)类型的模板函数失败
- 升压::可选<bool>取消引用
- C++如何将类方法传递给要求引用可调用的函数
- 结构引用和取消引用运算符
- 使用引用和取消引用运算符读取代码行时遇到问题
- 如何确定类型在 C++03 中是否可取消引用
- 我们应该在通过引用之前取消引用指针吗
- 数组迭代器不是可取消引用的错误
- 取消引用指向取消引用类中的函子的指针
- C++/CLI 项目如何引用可移植类库
- 如何在 boost::asio 线程池中使任务可取消/可中断
- 迭代器不是可取消引用的堆栈(表达式树)和循环无法正常工作
- 如何使用boost::expression-static在语义操作中引用可选子匹配
- 何时引用和取消引用具有成员函数的指针
- 列出迭代器而不是可取消引用的运行时
- 为什么持有引用可复制的类