我正在使用 STL 列表,并在尝试检索最后一个元素时不断出错。我有一堂课
class Buffer {
private:
list<Flit*> fifo;
...
public:
...
Flit *peek_last_flit(void) const;
...
};
和实施
Flit *Buffer::peek_last_flit(void) const {
if (fifo.empty())
return 0;
Flit *f = *(fifo.begin());
return f;
}
我有一个类似的实现,它返回列表的头部。
Flit *Buffer::peek_flit(void) const {
if (fifo.empty())
return 0;
Flit *f = *(fifo.begin());
return f;
}
我该如何解决这个问题(我同时调用了这两个过程,但是当我调用 Peek_last_flit 时,我收到一条调试断言失败消息:Expression: list iterator not dereferencable。
如何保留迭代器?任何帮助将非常感激。