diff options
-rw-r--r-- | tools/dataProvider.h | 2 | ||||
-rw-r--r-- | tools/fileDataProvider.cpp | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/tools/dataProvider.h b/tools/dataProvider.h index b8c14b2..a740a65 100644 --- a/tools/dataProvider.h +++ b/tools/dataProvider.h @@ -69,6 +69,8 @@ public: inline int getfSize(){return n;} void addEntry(DataEntry* d){ int ext=false; + if (d->qid=="-1") + other.push_back(d); for (int i=0;i<uniq.size();++i) if (uniq[i]->qid==d->qid) { diff --git a/tools/fileDataProvider.cpp b/tools/fileDataProvider.cpp index 1ff0279..39fae1b 100644 --- a/tools/fileDataProvider.cpp +++ b/tools/fileDataProvider.cpp @@ -58,6 +58,9 @@ void RidFileDP::readEntries() { d.addEntry(e); } pos = 0; + std::vector<DataEntry*> & dat = d.getData(); + while (pos<dat.size() && dat[pos]->rank!=-1 && dat[pos]->qid!="-1") + ++pos; qid = 1; read = true; } @@ -95,7 +98,7 @@ int RidFileDP::getDataSet(DataList &out){ dat[pos]->qid=std::to_string(qid); ++qid; dat[pos]->rank=qid; - while (pos<dat.size() && dat[pos]->rank!=-1) + while (pos<dat.size() && dat[pos]->rank!=-1 && dat[pos]->qid=="-1") ++pos; if (pos==d.getSize()) eof = true; |