这行是什么意思:list[i].push_back(adj[i][j](?
vector<vector<int>>printGraph(int V, vector<int> adj[])
{
vector<vector<int>>list(V);
for(int i=0;i<V;i++)
{
list[i].push_back(i);
for(int j=0;j<adj[i].size();j++)
{
list[i].push_back(adj[i][j]);
}
}
return list;
}
在您的例子中,adj
是指向向量的指针(在这种情况下,我怀疑它应该被视为二维数组(,而list
只是向量中的一个向量,因此是二维数组。list[i]
只是对阵列list
的第i行的引用,adj[i][j]
是对存储在二维阵列adj
的单元[i][j]中的值的引用。push_back
方法简单地将传递的值添加到相应向量的末尾,这意味着表达式list[i].push_back(adj[i][j]);
将简单地将存储在单元adj[i][j]
中的值添加在行list[i]
的末尾
定义一个函数,该函数返回嵌套向量作为输出。变量列表在函数中被定义为嵌套向量,作为一般的解释,我可以说二维数组表示为向量的向量,以及内部对等向量第一位置的行索引。声明:
list[i].push_back(adj[i][j]);
将二维数组的元素添加到内部向量ith。pushback方法在向量的末尾添加一个元素。
list[i].push_back(adj[i][j](这里的列表是要存储邻接列表的向量中的向量(2D数组(。示例-列表[1]=[2,3]
list[2]=[1,3]
list[3]=[1,2]