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


C++ Relation::addTuple方法代码示例

本文整理汇总了C++中Relation::addTuple方法的典型用法代码示例。如果您正苦于以下问题:C++ Relation::addTuple方法的具体用法?C++ Relation::addTuple怎么用?C++ Relation::addTuple使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Relation的用法示例。


在下文中一共展示了Relation::addTuple方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: insert

void DataManager::insert(string &relationName, vector<string> &values) {
	Relation* relation = getRelationByName(relationName);

	if (relation != NULL) {
		relation->addTuple(values);
	}
}
开发者ID:tubadude49,项目名称:315-Team-Project-1,代码行数:7,代码来源:DataManager.cpp

示例2: readFacts

void RDBMSInterpreter::readFacts(Relation& relation)
{
  for (vector<Fact*>::iterator it = m_facts.begin(); it != m_facts.end(); it++)
    {
      Fact* fact = *it;
      
      if (fact->id().compare(relation.name()) == 0)
        {
          relation.addTuple(fact);
        }
    }
}
开发者ID:calebbuahin,项目名称:byucs236,代码行数:12,代码来源:rdbmsinterpreter.cpp

示例3: naturalJoin

Relation Relation::naturalJoin(Relation relation1, Relation relation2){
    Relation newRelation;
    vector<pair<int, int>> pairIndexes;
    //Determine which columns relations have in common
    for (int i=0; i<relation1.schema.size(); i++) {
        for (int j=0; j<relation2.schema.size(); j++) {
            if(relation1.schema[i].getTokenType() == ID && relation2.schema[j].getTokenType() == ID &&
               !relation1.schema[i].getTokensValue().compare(relation2.schema[j].getTokensValue())){
                pairIndexes.push_back(make_pair(i, j));
            }
        }
    }
    
    for (int i=0; i<relation1.rows.size(); i++) {
        for (int j=0; j<relation2.rows.size(); j++) {
            bool equal = true;
            for (int k=0; k<pairIndexes.size(); k++) {
                if (relation1.getRowAtIndex(i).elements[pairIndexes[k].first].getTokensValue().compare(relation2.getRowAtIndex(j).elements[pairIndexes[k].second].getTokensValue())) {
                    equal = false;
                }
            }
            if (equal) {
                vector<Token> newVector = relation1.getRowAtIndex(i).elements;
                vector<Token> vectorToProject = relation2.getRowAtIndex(j).elements;
                
                //Eliminate Intersected Columns
                for (int k=pairIndexes.size() - 1.0; k>=0; k--) {
                    vectorToProject.erase(vectorToProject.begin() + pairIndexes[k].second);
                }
                
                newVector.insert(newVector.end(), vectorToProject.begin() ,vectorToProject.end());
                Tuple newTuple(newVector);
                newRelation.addTuple(newTuple);
            }
        }
    }
    
    vector<Token> newSchema = relation1.schema;
    vector<Token> schemaToEdit = relation2.schema;
    
    //Eliminate intercept columns in the schema
    for (int i=pairIndexes.size()-1.0; i>=0; i--) {
        schemaToEdit.erase(schemaToEdit.begin() + pairIndexes[i].second);
    }
    newSchema.insert(newSchema.end(), schemaToEdit.begin(), schemaToEdit.end());
    newRelation.schema = newSchema;
    
    return newRelation;
}
开发者ID:raull,项目名称:CS236,代码行数:49,代码来源:Relation.cpp

示例4: crossProduct

Relation Relation::crossProduct(Relation relation1, Relation relation2){
    Relation newRelation;
    for (int i=0; i<relation1.rows.size(); i++) {
        for (int j=0; j<relation2.rows.size(); j++) {
            vector<Token> newVector = relation1.getRowAtIndex(i).elements;
            newVector.insert(newVector.end(), relation2.getRowAtIndex(i).elements.begin() ,relation2.getRowAtIndex(j).elements.end());
            Tuple newTuple(newVector);
            newRelation.addTuple(newTuple);
        }
    }
    
    vector<Token> newSchema = relation1.schema;
    newSchema.insert(newSchema.end(), relation2.schema.begin(), relation2.schema.end());
    
    newRelation.schema = newSchema;
    
    return newRelation;
}
开发者ID:raull,项目名称:CS236,代码行数:18,代码来源:Relation.cpp


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