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


C++ list::getYoutEnd方法代码示例

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


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

示例1: copyNodeEdges

//Copy edges from first node to second
void Graph::copyNodeEdges(std::list<Node>::iterator pn1, std::list<Node>::iterator pn2)
{
    std::list< std::list<Node>::iterator >::iterator pnlist;
    for (pnlist = pn1->getXinBegin(); pnlist != pn1->getXinEnd(); pnlist++)
        setXedge((*pnlist), pn2);
    for (pnlist = pn1->getYinBegin(); pnlist != pn1->getYinEnd(); pnlist++)
        setYedge((*pnlist), pn2);
    for (pnlist = pn1->getXoutBegin(); pnlist != pn1->getXoutEnd(); pnlist++)
        setXedge(pn2, (*pnlist));
    for (pnlist = pn1->getYoutBegin(); pnlist != pn1->getYoutEnd(); pnlist++)
        setYedge(pn2, (*pnlist));
}
开发者ID:clamheart,项目名称:BGG,代码行数:13,代码来源:graph3.cpp

示例2: insertDuplicateNodes


//.........这里部分代码省略.........
                plnIter++;
                continue;
            }

            copyNodeEdges(*plnIter, preservedNode);
            deleteNodes.push_back(*plnIter);
            plnIter++;
        }
    }


    if (pn->getSizeXout() > 1)
    {
        std::list<Node>::iterator preservedNode = pn->getXout();
        int presSumExp = 0;
        std::vector<short> presWord = preservedNode->getElemName();
        for (int i = 0; i < presWord.size(); i++)
            presSumExp += presWord[i];

        std::list< std::list<Node>::iterator >::iterator plnIter;
        for (plnIter = pn->getXoutBegin(); plnIter != pn->getXoutEnd(); plnIter++)
        {
            std::vector<short> word = (*plnIter)->getElemName();
            int sumExponents = 0;
            for (int i = 0; i < word.size(); i++)
                sumExponents += word[i];

            if (sumExponents == 0)
            {
                preservedNode = *plnIter;
                break;
            }

            if (sumExponents < presSumExp)
            {
                preservedNode = *plnIter;
                presSumExp = sumExponents;
            }
        }

        plnIter = pn->getXoutBegin();
        while (plnIter != pn->getXoutEnd())
        {
            if ((*plnIter) == preservedNode)
            {
                plnIter++;
                continue;
            }

            copyNodeEdges(*plnIter, preservedNode);
            deleteNodes.push_back(*plnIter);
            plnIter++;
        }
    }


    if (pn->getSizeYout() > 1)
    {
        std::list<Node>::iterator preservedNode = pn->getYout();
        int presSumExp = 0;
        std::vector<short> presWord = preservedNode->getElemName();
        for (int i = 0; i < presWord.size(); i++)
            presSumExp += presWord[i];

        std::list< std::list<Node>::iterator >::iterator plnIter;
        for (plnIter = pn->getYoutBegin(); plnIter != pn->getYoutEnd(); plnIter++)
        {
            std::vector<short> word = (*plnIter)->getElemName();
            int sumExponents = 0;
            for (int i = 0; i < word.size(); i++)
                sumExponents += word[i];

            if (sumExponents == 0)
            {
                preservedNode = *plnIter;
                break;
            }

            if (sumExponents < presSumExp)
            {
                preservedNode = *plnIter;
                presSumExp = sumExponents;
            }
        }

        plnIter = pn->getYoutBegin();
        while (plnIter != pn->getYoutEnd())
        {
            if ((*plnIter) == preservedNode)
            {
                plnIter++;
                continue;
            }

            copyNodeEdges(*plnIter, preservedNode);
            deleteNodes.push_back(*plnIter);
            plnIter++;
        }
    }
}
开发者ID:clamheart,项目名称:BGG,代码行数:101,代码来源:graph3.cpp

示例3: clearDuplicateNodes


//.........这里部分代码省略.........
    {
        std::list<Node>::iterator preservedNode = pn->getXout();
        int presSumExp = 0;
        std::vector<short> presWord = preservedNode->getElemName();
        for (int i = 0; i < presWord.size(); i++)
            presSumExp += presWord[i];

        std::list< std::list<Node>::iterator >::iterator plnIter;
        for (plnIter = pn->getXoutBegin(); plnIter != pn->getXoutEnd(); plnIter++)
        {
            std::vector<short> word = (*plnIter)->getElemName();
            int sumExponents = 0;
            for (int i = 0; i < word.size(); i++)
                sumExponents += word[i];

            if (sumExponents == 0)
            {
                preservedNode = *plnIter;
                break;
            }

            if (sumExponents < presSumExp)
            {
                preservedNode = *plnIter;
                presSumExp = sumExponents;
            }
        }

        plnIter = pn->getXoutBegin();
        while (plnIter != pn->getXoutEnd())
        {
            if ((*plnIter) == preservedNode)
            {
                plnIter++;
                continue;
            }

            std::list< std::list<Node>::iterator >::iterator prevNodeIter = plnIter;
            prevNodeIter--;
            copyNodeEdges(*plnIter, preservedNode);
            removeNode(*plnIter);
            plnIter = prevNodeIter;
        }

        return true;
    }


    if (pn->getSizeYout() > 1)
    {
        std::list<Node>::iterator preservedNode = pn->getYout();
        int presSumExp = 0;
        std::vector<short> presWord = preservedNode->getElemName();
        for (int i = 0; i < presWord.size(); i++)
            presSumExp += presWord[i];

        std::list< std::list<Node>::iterator >::iterator plnIter;
        for (plnIter = pn->getYoutBegin(); plnIter != pn->getYoutEnd(); plnIter++)
        {
            std::vector<short> word = (*plnIter)->getElemName();
            int sumExponents = 0;
            for (int i = 0; i < word.size(); i++)
                sumExponents += word[i];

            if (sumExponents == 0)
            {
                preservedNode = *plnIter;
                break;
            }

            if (sumExponents < presSumExp)
            {
                preservedNode = *plnIter;
                presSumExp = sumExponents;
            }
        }

        plnIter = pn->getYoutBegin();
        while (plnIter != pn->getYoutEnd())
        {
            if ((*plnIter) == preservedNode)
            {
                plnIter++;
                continue;
            }

            std::list< std::list<Node>::iterator >::iterator prevNodeIter = plnIter;
            prevNodeIter--;
            copyNodeEdges(*plnIter, preservedNode);
            removeNode(*plnIter);
            plnIter = prevNodeIter;
        }

        return true;
    }


    //no duplicates found if you get to this point
    return false;
}
开发者ID:clamheart,项目名称:BGG,代码行数:101,代码来源:graph3.cpp


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