diff options
Diffstat (limited to 'tools/dataProvider.h')
-rw-r--r-- | tools/dataProvider.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/tools/dataProvider.h b/tools/dataProvider.h index 1d430e4..028980e 100644 --- a/tools/dataProvider.h +++ b/tools/dataProvider.h @@ -40,7 +40,11 @@ public: DataEntry* dat = new DataEntry; dat->rank = d->rank; dat->qid = d->qid; - dat->feature = d->feature; + dat->feature.resize(d->feature.rows()); + for (int i=0;i<d->feature.rows();++i) + { + dat->feature(i)=d->feature(i); + } return dat; } inline std::vector<DataEntry*>& getData(){ @@ -59,7 +63,7 @@ public: DataProvider():eof(false){}; bool EOFile(){return eof;} - void getAllData(DataList &out){\ + void getAllDataSet(DataList &out){\ out.clear(); DataList buf; while (!EOFile()) @@ -68,9 +72,12 @@ public: // won't work as data are discarded with every call to getDataSet // out.getData().insert(out.getData().end(),buf.getData().begin(),buf.getData().end()); for (int i=0;i<buf.getSize();++i) + { out.addEntry(out.copyEntry(buf.getData()[i])); + } out.setfSize(buf.getfSize()); } + buf.clear(); } virtual int getDataSet(DataList &out) = 0; virtual int open()=0; |