当前位置: 首页>>代码示例>>C++>>正文


C++ QueryData::GetClauseSequence方法代码示例

本文整理汇总了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;
}
开发者ID:darrenbkl,项目名称:SPA,代码行数:44,代码来源:Optimizer.cpp


注:本文中的QueryData::GetClauseSequence方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。