我想讀/反序列化一個文件中的元素列表(然後過濾掉其中的一些)。爲此目的使用迭代器是一種有用的方法?使用C++迭代器從文件中讀取列表?
我現在的嘗試是
#include <boost/iterator/iterator_adaptor.hpp>
class ReadIterator : public boost::iterator_adaptor<ReadIterator, Elem *, boost::single_pass_traversal_tag>
{
public:
explicit ReadIterator(const char *filename) : reader(filename) {}
private:
friend class boost::iterator_core_access;
void increment() {
this->base_reference() = reader.readNext();
}
Reader reader;
};
這並不正確釋放內存(例如,readNew返回一個指向新ELEM),什麼是做到這一點的正確方法?另外,如何實際使用這樣一個迭代器,如何確定結束?還是有更好的方法比使用迭代器?
你能給我們採樣的輸入? – wilhelmtell 2011-04-19 04:32:43