示例#1
0
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;
}
示例#2
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;
}