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.
イテレータを保持するにはどうすればよいですか? どんな助けでも大歓迎です。