本文整理汇总了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;
}