本文整理汇总了C++中QueryData::GetClauseSequence方法的典型用法代码示例。如果您正苦于以下问题:C++ QueryData::GetClauseSequence方法的具体用法?C++ QueryData::GetClauseSequence怎么用?C++ QueryData::GetClauseSequence使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QueryData
的用法示例。
在下文中一共展示了QueryData::GetClauseSequence方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: weightSuchThat
vector<pair<ClauseType,int>> Optimizer::optimize(QueryData qd){
vector<pair<ClauseType,int>> tempSequence = qd.GetClauseSequence();
vector<SuchThatClause> tempSuchThats = qd.GetSuchThats();
vector<PatternClause> tempPatterns = qd.GetPatterns();
vector<WithClause> tempWiths = qd.GetWiths();
vector<pair<pair<ClauseType,int>,int>> weightMap;
for(vector<pair<ClauseType,int>>::iterator iter=tempSequence.begin();iter!=tempSequence.end();++iter)
{
switch((*iter).first){
case SUCHTHAT:{
int weight = weightSuchThat(tempSuchThats[(*iter).second]);
weightMap.push_back(pair<pair<ClauseType,int>,int>((*iter),weight));
break;
}
case WITH:{
int weight = weightWith(tempWiths[(*iter).second]);
weightMap.push_back(pair<pair<ClauseType,int>,int>((*iter),weight));
break;
}
case PATTERN:{
int weight = weightPattern(tempPatterns[(*iter).second]);
weightMap.push_back(pair<pair<ClauseType,int>,int>((*iter),weight));
break;
}
default:{
cout << "wrong clausetype./n";
break;
}
}
}
sort(weightMap.begin(), weightMap.end(), strict_weak_ordering);
vector<pair<ClauseType,int>> finalSequence;
for(vector<pair<pair<ClauseType,int>,int>>::iterator iter=weightMap.begin();iter!=weightMap.end();++iter) {
cout << (*iter).first.second;
finalSequence.push_back((*iter).first);
}
return finalSequence;
}