title: What is "new list<int>[V]; "?
body: <p>Sorry for my noobishness but I have been trying to study graphs and have come across this code from GFG.</p>
  <pre><code>#include &lt;list&gt;
   
  using namespace std;
   
  // This class represents a directed graph using
  // adjacency list representation
  class Graph
  {
      int V;    // No. of vertices
   
      // Pointer to an array containing adjacency
      // lists
      list&lt;int&gt; *adj;   
  public:
      Graph(int V);  // Constructor
   
      // function to add an edge to graph
      void addEdge(int v, int w); 
   
      // prints BFS traversal from a given source s
      void BFS(int s);  
  };
   
  Graph::Graph(int V)
  {
      this-&gt;V = V;
      adj = new list&lt;int&gt;[V];
  }
   
  void Graph::addEdge(int v, int w)
  {
      adj[v].push_back(w); // Add w to v’s list.
  }
  </code></pre>
  <p>I have some questions:</p>
  <ol>
  <li>What does <code>new list&lt;int&gt;[V];</code> do?</li>
  <li>What is meant by <code>list&lt;int&gt; * adj;</code>?</li>
  <li>Could anyone suggest a better code that does the same thing?</li>
  </ol>