I'm new to C++ STL, and I'm having trouble comprehending the graph representation.

```
vector<int> adj[N];

```

So does this create an array of type vector or does this create a vector of arrays? The BFS code seems to traverse through a list of values present at each instance of adj[i], and hence it seems works like an array of vectors. 
Syntax for creating a vector is:

```
vector<int> F;

```

which would effectively create a single dimensional vector F.

What is the difference between 

```
vector< vector<int> > N; 

```

and

```
vector<int> F[N]

```