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


C++ AdjacencyList::setN方法代码示例

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


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

示例1: renumber

void BreakpointGraph::renumber()
{
    int *oldToNew = new int[n+2];
    oldToNew[0] = 0;
    int renumbered = 1;
    AdjacencyListIterator it(adjlist);    
    int current = 0;
    
    while(renumbered <= n+1)
    {
        it.setTo(-current);
        it.nextDesire();
        current = it.get().vertex;
        oldToNew[-current] = renumbered;
        ++renumbered;
    }

    AdjacencyList *newAdjlist = new AdjacencyList();
    newAdjlist->setN(n);
    AdjacencyList &newAdjacencies = *newAdjlist;
    AdjacencyListIterator it2(adjlist);
    int newvertex;

    for(int i = 0; i <= n+1; ++i)
    {
        it2.setTo(i);
        Adjacency &old = it2.get();
        if( (old.reality != 0) && (old.desire != 0) )
        {
            newvertex = remap(old.vertex);
            newAdjacencies[newvertex].vertex = newvertex;
            newAdjacencies[newvertex].reality = remap(old.reality);
            newAdjacencies[newvertex].desire = remap(old.desire);            
        }
        
        it2.setTo(-i);
        old = it2.get();
        newvertex = remap(old.vertex);
        newAdjacencies[newvertex].vertex = newvertex;
        newAdjacencies[newvertex].reality = remap(old.reality);
        newAdjacencies[newvertex].desire = remap(old.desire);
    }
    
    delete adjlist;
    adjlist = newAdjlist;
    delete oldToNew;
}
开发者ID:jamilegoncalves,项目名称:sbt1375,代码行数:47,代码来源:BreakpointGraph.cpp


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