将vector初始化为整型列表

Initializing a vector to a list of integers

本文关键字:整型 列表 初始化 vector      更新时间:2023-10-16

为了表示邻接表样式的图形,我使用包含指向相邻列表的指针的向量。

class Graph
{
public:
Graph(int V)
{
    vector<list<int> *> vertices(V);
}
// Member functions for Graph class
void addEdge();
void print();
void type(string);
 private:
vector<list<int> *> vertices;
};

在main函数中获取用户的顶点数->将其传递给构造函数,这一切都工作了,这意味着向量被初始化为所需的大小!但就在程序从头文件返回到主函数之后,情况发生了变化!在跟踪顶点的值:大小不知何故被重置的地方,我不知道!!

int size;
cout << "Enter the number of vertices in the Graph: ";
cin >> size;
Graph g(size);

Immona需要帮助,可能会出什么问题?

在构造函数中创建了一个临时向量(局部变量):

Graph(int V)
{
    vector<list<int> *> vertices(V);
}

你需要初始化你的成员变量:

Graph(int V) : vertices(V) {}

另外,如果您确实需要使用指针,我建议使用std::unique_ptr<list<int>>代替原始指针,否则只需存储纯std::list<int>