我正在使用STL列表,並在嘗試檢索最後一個元素時不斷收到錯誤。我有一個類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我得到一個調試asserion失敗消息: 表達:列表迭代器不dereferencable
我如何可以保留迭代器? 任何幫助將非常感激。
似乎應該有'fifo.end()'在questio中'peek_last_flit' – RiaD 2012-07-21 11:05:42