我一直在寻找用C ++实现SCC算法的方法,其中有一条怪异的路线显然超出了我的理解范围。
Graph<V,E> gt(SIZE(g)), res(SIZE(g)), *tab[] = {this,>};
我不了解*tab[] = {this,>};
我认为它是一个指针,但仍然根本不了解它,所以如果有人可以向我解释它,我将非常高兴。我使用C ++已有6年了,以前从未见过这种指针。
答案 0 :(得分:2)
这似乎是三个不同的声明:
Graph<V,E> gt(SIZE(g));
Graph<V,E> res(SIZE(g));
Graph<V,E> *tab[] = {this,>};
可能是有人想使代码最小化,但是可以说它以一种非常严格的方式影响了可读性。
我不知道为什么tab
甚至存在,这取决于在代码的其他部分中如何使用它。这是某种古怪的链表吗?
答案 1 :(得分:1)
tab
是指向Graph<V, E>
的指针的数组,并用两个元素初始化:指针this
和指向新创建的gt
的指针。