int _tmain(int argc, _TCHAR* argv[]) { vector<int> v(N,0); for(int i = 0; i < N; ++i) v[i] = i; copy(v.begin(), v.end(), ostream_iterator<int>(cout, " ")); cout<<endl; random_shuffle(v.begin(), v.end()); copy(v.begin(), v.end(), ostream_iterator<int>(cout, " ")); cout<<endl; vector<int> vtop = topK(v,10); copy(vtop.begin(), vtop.end(), ostream_iterator<int>(cout, " ")); cout<<endl; copy(v.begin(), v.end(), ostream_iterator<int>(cout, " ")); cout<<endl; QuickSort(v); copy(v.begin(), v.end(), ostream_iterator<int>(cout, " ")); cout<<endl; return 0; }
void SearchQuery::findDocs(){ openTermsList(); vector<DocContainQuery> result; if(termList.size() == 0){ cout << "Invalid query, please try another query!" <<endl; return; } bool flag = true; unsigned int curDocId = 0; while(flag){ for(int i = 0; i < termList.size(); i++){ unsigned int tmp = termList[i].nextGEQ(curDocId); if(tmp < curDocId){ flag = false; break; } else if(tmp > curDocId){ curDocId = tmp; i = -1; } else{ if(i == termList.size()-1){ DocContainQuery doc; doc.docId = curDocId ++; //cout << "add new doc = " << doc.docId << endl; for(int j = 0; j < termList.size(); j++){ doc.freqForTerms.push_back(termList[j].getFreq()); } result.push_back(doc); } } } } if(result.size() == 0){ cout << "sorry, no result.... >.<" << endl; return; } else{ topK(result); } closeTermsList(); return; }