我有这个代码:
const int maxnodes = 5000;
struct Edge
{
int to, rev;
int f, cap;
};
vector<Edge> g[maxnodes];
这很好理解,但我在后面的几行中看到它用作
Edge &e = g[u][j];
这里,'u,j'
是整数。什么是 "g[u][j]"
? 'g'
是用 'Edge'
结构填充的 vector ,它怎么能像数组的数组一样?
我知道 Edge &e
是一个引用,它正在接收一个 'Edge
' 结构,但我对 'g[u][j 感到困惑]'
.
源代码是here
提前致谢! :)
最佳答案
int nodes = maxnodes, src, dest;
这意味着所有都是整数并且节点是用maxnodes初始化的
vector<Edge> g[maxnodes]
是 vector 数组。
vector 就像一个动态数组。 g[x] 将指向一个 vector 。 g[x][y] 将指向一个 Edge 。
关于C++ vector,这段代码是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36130509/