summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorJoe Zhao <ztuowen@gmail.com>2015-04-27 11:39:51 +0800
committerJoe Zhao <ztuowen@gmail.com>2015-04-27 11:39:51 +0800
commit3924bc35fb5d80dd959805f0f91b2ad5c4d0bc4c (patch)
tree7b9794a61729e91982454156530d719e9b245530 /tools
parent4f0acec64ad8edcea4269b4121b2ddb2215d3503 (diff)
downloadranksvm-3924bc35fb5d80dd959805f0f91b2ad5c4d0bc4c.tar.gz
ranksvm-3924bc35fb5d80dd959805f0f91b2ad5c4d0bc4c.tar.bz2
ranksvm-3924bc35fb5d80dd959805f0f91b2ad5c4d0bc4c.zip
debugged getAllData
Diffstat (limited to 'tools')
-rw-r--r--tools/dataProvider.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/tools/dataProvider.h b/tools/dataProvider.h
index 5a2f3e9..a8a5448 100644
--- a/tools/dataProvider.h
+++ b/tools/dataProvider.h
@@ -35,6 +35,14 @@ public:
delete data[i];
data.clear();
}
+ static DataEntry* copyEntry(DataEntry* d)
+ {
+ DataEntry* dat = new DataEntry;
+ dat->rank = d->rank;
+ dat->qid = d->qid;
+ dat->feature = d->feature;
+ return dat;
+ }
inline std::vector<DataEntry*>& getData(){
return data;
}
@@ -57,8 +65,12 @@ public:
while (!EOFile())
{
getDataSet(buf);
- out.getData().insert(out.getData().end(),buf.getData().begin(),buf.getData().end());
+ // 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());
}
virtual int getDataSet(DataList &out) = 0;
virtual int open()=0;