【发布时间】:2016-05-31 19:09:07
【问题描述】:
我是 C++ STL 的新手,无法理解图形表示。
vector<int> adj[N];
那么这会创建一个向量类型的数组还是创建一个数组向量? BFS 代码似乎遍历了 adj[i] 的每个实例中存在的值列表,因此它看起来就像一个向量数组。 创建向量的语法是:
vector<int> F;
这将有效地创建一维向量 F。
有什么区别
vector< vector<int> > N;
和
vector<int> F[N]
【问题讨论】:
-
尝试从从右到左阅读。在这种情况下,它变成了向量数组。
-
int x[N];是int的数组;vector<int> y[N];是vector<int>的数组。 -
请记住,对于任何定义为
T name[N]的数组,您都有一个数组name,其中N元素类型为T。另外,当我们讨论数组时,std::array<T, N>是T name[N]形式的数组的容器,就像std::vector<T>是T类型的可变长度数组的容器一样。