Я пытаюсь добавить элемент в список в векторе. Ошибка возникает в методе addEdge, поскольку он не может получить доступ к требуемому контейнеру (ошибка сегментации). график - это вектор, в котором каждый контейнер содержит список связанных с ним вершин (и вес этого ребра, который в данном случае равен 0).
Graph(int n, bool directed)
{
this->n = n;
graph.reserve(n);
this->directed = directed;
this->m = 0;
}
void addEdge(int x, int y)
{
graph[x - 1].push_back({y - 1, 0});
if (!directed)
graph[y - 1].push_back({x - 1, 0});
m++;
}
M - это число ребер, а n - это число количество вершин. Я делал это много раз прежде с простыми массивами, но еще не пробовал с векторами. Класс состоит из:
int n;
int m;
bool directed;
std::vector<std::list<std::pair<int, int>>> graph;