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


C++ Road::addCrossroad方法代码示例

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


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

示例1: readSubRoadsFile

void RoadMap::readSubRoadsFile(const std::string& fsubroads){
    std::ifstream subroads;
    int i = 0;

    subroads.open(fsubroads.c_str());
    if(!subroads.is_open()){
        std::cout << "subroads file does not exist\n";
        return;
    }
    while(!subroads.eof()){
        string str;
        stringstream ss;
        uint id_road, id_node1, id_node2;
        char lixo;

        ss.clear();
        getline(subroads, str, '\n');
        ss << str;
        ss >> id_road >> lixo >> id_node1 >> lixo >> id_node2;

        //TODO Falta conferir se os id est�o em crossroads/roads.
        Crossroad* c1 = &crossRoads.find(id_node1)->second;
        Crossroad* c2 = &crossRoads.find(id_node2)->second;
        Road* r = &roads.find(id_road)->second;
        r->addCrossroad(c1);
        r->addCrossroad(c2);

        uint dist = c1->getDist(*c2);

        if(!this->addEdge(*c1, *c2, dist))
            cerr << "Edge ups..." << id_node1 << " " << id_node2 << endl;

        if(r->isTwoWay()){
            if(!this->addEdge(*c2, *c1, dist))
                cerr << "Edge ups..." << id_node2 << " " << id_node1 << endl;
            i++;
        }
        i++;
    }
    subroads.close();

    cout << i;
}
开发者ID:AndreBrochado,项目名称:cal_proj_1,代码行数:43,代码来源:RoadMap.cpp


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