summaryrefslogtreecommitdiff
path: root/tools/dataProvider.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/dataProvider.h')
-rw-r--r--tools/dataProvider.h11
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;