在构造函数中初始化向量数组

时间:2018-09-28 15:18:36

标签: arrays oop c++11 vector

我有一个名为Graph的类。该类的顶点成员在那里。我已经在构造函数中初始化了顶点。此外,还有一个向量成员数组。我希望向量的数量等于顶点。例如,如果顶点= 5,则我的向量数组应如下所示。 向量v [5]; 如何在构造函数中执行此操作,因为我只会知道构造函数中的顶点值?

class Graph
{

private:
    int vertices;
    std::vector<int> adj[];
public:
    Graph(int v); //constructor
    // add an edge
    void addEdge(int u, int v);
    //print bfs traversal of graph
    void bfs(int s); // s is a source from where bfs traversal should 
                     //start

};

Graph :: Graph(int v)
{
   vertices = v;
}

1 个答案:

答案 0 :(得分:1)

由于只在运行时知道顶点的值,因此不能使用C样式的数组或std::array,因为它们需要在编译时知道其大小。

您可以改用其他向量:

std::vector<std::vector<int>> adj;